PHP魔术方法以及关于独立实例与相连实例的全面讲解


Posted in PHP onOctober 18, 2016
<?php
//魔术方法
//当包含多个类
//1.自动装载类的魔术方法__autoload()
function __autoload($classname){
if (isset($classname)){
require_once $classname.'.class.php';
}
}


/* $computer1=new Computer();
$computer1->addList('dalisng',234);
echo $computer1; */
//__call()屏蔽调用方法时候产生的错误,当我们调用一个不存在的方法时候,会自动调用__call()方法。
//独立实例,两个实例各自建立,互不干涉
$computer2=new Computer();
echo $computer2->name;echo "<br/>";
$computer3=new Computer();
echo $computer3->name;echo "<br/>";
$computer3->name="大亮";
echo '$computer3->name:'.$computer3->name;echo "<br/>";
echo '$computer2->name:'.$computer2->name;echo "<br/>";

echo "<hr/>";
//相连实例,即 用等于号来开辟一个新的实例,此时两个实例共同指向一个内存地址,一损俱损,一荣俱荣
$computer4=new Computer();
echo '$computer4->name:'.$computer4->name;echo "<br/>";
$computer5=$computer4;
echo '$computer5->name:'.$computer5->name;echo "<br/>";
$computer4->name="大亮";
echo '$computer4->name:'.$computer4->name;echo "<br/>";
echo '$computer5->name:'.$computer5->name;echo "<br/>";

echo "<hr/>";
//克隆__clone,克隆的新实例和被克隆的实例是两个相互独立的个体,虽然属性值相同,但是属性存放的地址不同,所以克隆后你我生死无关
$computer6=new Computer();
echo '$computer6->name:'.$computer6->name;echo "<br/>";
$computer7=clone $computer6;
echo '$computer7->name:'.$computer7->name;echo "<br/>";
$computer6->name="克隆";
echo '$computer6->name:'.$computer6->name;echo "<br/>";
echo '$computer7->name:'.$computer7->name;echo "<br/>";

Computer.class.php

<?php
class Computer{
public $name="1234";
function __construct(){
echo "you are right!";
}

function __call($methodName,$argsList){//当方法不存在的时候会自动调用此方法,$argsList是相应的参数
echo $methodName."()方法不存在!";
echo "<pre>";
print_r($argsList);
echo "</pre>";
}

private function __toString(){ //当用户输出不存在的字符串时候,该方法自动调用 比如echo 对象名
echo "我是对象的字符串!";
}
}

以上就是小编为大家带来的PHP魔术方法以及关于独立实例与相连实例的全面讲解全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
PHP.MVC的模板标签系统(一)
Sep 05 PHP
php Smarty模板生成html文档的方法
Apr 12 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
奇怪的PHP引用效率问题分析
Mar 23 PHP
PHP-redis中文文档介绍
Feb 07 PHP
浅析ThinkPHP中execute和query方法的区别
Jun 13 PHP
PHP针对常规模板引擎中与CSS/JSON冲突的解决方法
Aug 19 PHP
php程序内部post数据的方法
Mar 31 PHP
Yii2搭建后台并实现rbac权限控制完整实例教程
Apr 28 PHP
yii2超好用的日期组件和时间组件
May 05 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
Oct 18 #PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 #PHP
Yii针对添加行的增删改查操作示例
Oct 18 #PHP
Yii遍历行下每列数据的方法
Oct 17 #PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
Oct 17 #PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 #PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 #PHP
You might like
浅析php过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
php线性表的入栈与出栈实例分析
2015/06/12 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
PHP与以太坊交互详解
2018/08/24 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
AngularJS实现标签页的两种方式
2016/09/05 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
使用vue构建移动应用实战代码
2017/08/02 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
深入理解Angularjs 脏值检测
2018/10/12 Javascript
Javascript实现一朵从含苞到绽放的玫瑰
2019/03/30 Javascript
javascript实现动态时钟的启动和停止
2020/07/29 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
Python中的闭包详细介绍和实例
2014/11/21 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
使用django和vue进行数据交互的方法步骤
2019/11/11 Python
python字符串的index和find的区别详解
2020/06/20 Python
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
Carolina Lemke Berlin澳大利亚官网:时尚太阳镜品牌
2019/09/17 全球购物
Linux常见面试题
2016/10/04 面试题
《两个铁球同时着地》教学反思
2014/02/13 职场文书
2014年语文教师工作总结
2014/12/18 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
品牌形象定位,全面分析
2019/07/23 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL