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数字转汉字代码(算法)
Oct 08 PHP
php判断电脑访问、手机访问的例子
May 10 PHP
PHP 如何获取二维数组中某个key的集合
Jun 03 PHP
PHP资源管理框架Assetic简介
Jun 12 PHP
php编写的一个E-mail验证类
Mar 25 PHP
php实现每天自动变换随机问候语的方法
May 12 PHP
php使用GD实现颜色渐变实例
Jun 02 PHP
PHP计算加权平均数的方法
Jul 16 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
php传值和传引用的区别点总结
Nov 19 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
Apr 04 PHP
Laravel中GraphQL接口请求频率实战记录
Sep 01 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程序
2012/02/04 PHP
php地址引用(php地址引用的效率问题)
2012/03/23 PHP
支付宝接口开发集成支付环境小结
2015/03/17 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
PHP脚本自动识别验证码查询汽车违章
2016/12/20 PHP
php查询及多条件查询
2017/02/26 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
2017/07/10 PHP
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
使用原生javascript创建通用表单验证——更锋利的使用dom对象
2011/09/13 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
JavaScript采用递归算法计算阶乘实例
2015/08/04 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
jQuery回调方法使用示例
2017/06/26 jQuery
微信小程序实现运动步数排行功能(可删除)
2018/07/05 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
layui当点击文本框时弹出选择框,显示选择内容的例子
2019/09/02 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
es6函数中的作用域实例分析
2020/04/18 Javascript
vue npm install 安装某个指定的版本操作
2020/08/11 Javascript
python实现扫描日志关键字的示例
2018/04/28 Python
Python3.6简单反射操作示例
2018/06/14 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python生成每日报表数据(Excel)并邮件发送的实例
2019/02/03 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
2019/05/13 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
CSS3实现同时执行倾斜和旋转的动画效果
2016/10/27 HTML / CSS
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
微软美国官方网站:Microsoft美国
2018/05/10 全球购物
乡镇办公室工作决心书
2014/03/11 职场文书
毕业生自荐信如何写
2014/03/24 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python
基于Python实现nc批量转tif格式
2022/08/14 Python