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 相关文章推荐
php5.2时间相差8小时
Jan 15 PHP
一个PHP的String类代码
Apr 20 PHP
从康盛产品(discuz)提取出来的模板类
Jun 28 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
Jul 04 PHP
PHP使用ffmpeg给视频增加字幕显示的方法
Mar 12 PHP
php函数重载的替代方法--伪重载详解
May 08 PHP
php实现的验证码文件类实例
Jun 18 PHP
php把数组值转换成键的方法
Jul 13 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
Jun 30 PHP
PHP PDOStatement::bindValue讲解
Jan 30 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
Oct 01 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 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学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
2015/02/08 PHP
php创建多级目录的方法
2015/03/24 PHP
php取得字符串首字母的方法
2015/03/25 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
PHP闭包函数详解
2016/02/13 PHP
PHP pear安装配置教程
2016/05/14 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
php把时间戳转换成多少时间之前函数的实例
2016/11/16 PHP
IFrame跨域高度自适应实现代码
2012/08/16 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
2015/03/12 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
javascript入门之window对象【新手必看】
2016/11/22 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
原生js实现碰撞检测
2020/03/12 Javascript
10个易被忽视但应掌握的Python基本用法
2015/04/01 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
实例解析Python中的__new__特殊方法
2016/06/02 Python
使用Python的OpenCV模块识别滑动验证码的缺口(推荐)
2019/05/10 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
命令行运行Python脚本时传入参数的三种方式详解
2019/10/11 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
python 基于UDP协议套接字通信的实现
2021/01/22 Python
通过Canvas及File API缩放并上传图片完整示例
2013/08/08 HTML / CSS
EJB的角色和三个对象
2015/12/31 面试题
2014年科室工作总结
2014/11/20 职场文书
个人原因辞职信模板
2015/05/13 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
推普标语口号大全
2015/12/26 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书