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生成带有雪花背景的验证码
Sep 28 PHP
超级实用的7个PHP代码片段分享
Jan 05 PHP
fgetcvs在linux的问题
Jan 15 PHP
PHP通过session id 实现session共享和登录验证的代码
Jun 03 PHP
ThinkPHP安装和设置
Jul 27 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
Jan 07 PHP
php微信高级接口群发 多客服
Jun 23 PHP
Yii2中简单的场景使用介绍
Jun 02 PHP
php微信公众号开发之秒杀
Oct 20 PHP
laravel withCount 统计关联数量的方法
Oct 10 PHP
Laravel 类和接口注入相关的代码
Oct 15 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
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中memcache的应用
2013/06/18 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
获得Javascript对象属性个数的示例代码
2013/11/21 Javascript
JS的get和set使用示例
2014/02/20 Javascript
JavaScript定义类和对象的方法
2014/11/26 Javascript
javascript+canvas制作九宫格小程序
2014/12/28 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
AngularJS之依赖注入模拟实现
2016/08/19 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
JavaScript选取(picking)和反选(rejecting)对象的属性方法
2017/08/16 Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
2017/11/28 Javascript
Vuex中mutations与actions的区别详解
2018/03/01 Javascript
mocha的时序规则讲解
2019/02/16 Javascript
JavaScript判断浏览器运行环境的详细方法
2019/06/30 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
js实现表单项的全选、反选及删除操作示例
2020/06/05 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
浅析python中的分片与截断序列
2016/08/09 Python
windows下ipython的安装与使用详解
2016/10/20 Python
详谈python3中用for循环删除列表中元素的坑
2018/04/19 Python
Python+OpenCV+图片旋转并用原底色填充新四角的例子
2019/12/12 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
2020/04/27 Python
英文导游欢迎词
2014/01/11 职场文书
会计专业职业规划:规划自我赢取未来
2014/02/12 职场文书
外贸业务员求职信
2014/06/16 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
行政二审代理词
2015/05/25 职场文书
小兵张嘎电影观后感
2015/06/03 职场文书
详解Python中的进程和线程
2021/06/23 Python
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
Python Flask实现进度条
2022/05/11 Python