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操作数组相关函数
Feb 03 PHP
PHP5中虚函数的实现方法分享
Apr 20 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
php中利用explode函数分割字符串到数组
Feb 08 PHP
一漂亮的PHP图片验证码实例
Mar 21 PHP
PHP实现根据设备类型自动跳转相应页面的方法
Jul 24 PHP
一款简单实用的php操作mysql数据库类
Dec 08 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
Dec 24 PHP
php自动识别文字编码并转换为目标编码的方法
Aug 08 PHP
PHP删除数组中指定下标的元素方法
Feb 03 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 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
使用Limit参数优化MySQL查询的方法
2008/11/12 PHP
PHP多例模式介绍
2013/06/24 PHP
Yii2隐藏frontend/web和backend/web的方法
2015/12/12 PHP
php中如何执行linux命令详解
2018/11/06 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
javascript 表单验证常见正则
2009/09/28 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
jquery新的绑定事件机制on方法的使用方法
2014/04/15 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
Angular的MVC和作用域
2016/12/26 Javascript
详谈$.data()的用法和作用
2017/02/13 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
微信小程序-可移动菜单的实现过程详解
2019/06/24 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
Python实现的递归神经网络简单示例
2017/08/11 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
2018/11/29 Python
python matplotlib实现双Y轴的实例
2019/02/12 Python
在pycharm中为项目导入anacodna环境的操作方法
2020/02/12 Python
css3之UI元素状态伪类选择器实例演示
2017/08/11 HTML / CSS
自动化系在校本科生求职信
2013/10/23 职场文书
校园餐饮创业计划书
2014/01/10 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
精彩的演讲稿开头
2014/05/08 职场文书
超市开店计划书
2014/09/15 职场文书
保护环境的宣传语
2015/07/13 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
感恩信:写给爸爸妈妈的一封感谢信
2019/09/12 职场文书
CPU不支持Windows11系统怎么办
2021/11/21 数码科技
java开发双人五子棋游戏
2022/05/06 Java/Android