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添加MySQL数据记录代码
Jun 07 PHP
PHP中文URL编解码(urlencode()rawurlencode()
Jul 03 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
yum命令安装php7和相关扩展
Jul 04 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
Yii2框架自定义验证规则操作示例
Feb 08 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 30 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 PHP
php源码的安装方法和实例
Sep 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
建立动态的WML站点(三)
2006/10/09 PHP
获取URL文件名后缀
2013/10/24 PHP
输入值/表单提交参数过滤有效防止sql注入的方法
2013/12/25 PHP
php中get_meta_tags()、CURL与user-agent用法分析
2014/12/16 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
BOOM vs RR BO3 第一场2.13
2021/03/10 DOTA
仿校内登陆框,精美,给那些很厉害但是没有设计天才的程序员
2008/11/24 Javascript
jMessageBox 基于jQuery的窗口插件
2009/12/09 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
js中的string.format函数代码
2020/08/11 Javascript
js获取url参数值的两种方式
2013/09/10 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
2014/06/23 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
详解Web使用webpack构建前端项目
2017/09/23 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
JavaScript实现消消乐的源代码
2021/01/12 Javascript
python 布尔操作实现代码
2013/03/23 Python
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
django 创建过滤器的实例详解
2017/08/14 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
Python图像处理二值化方法实例汇总
2020/07/24 Python
Django解决frame拒绝问题的方法
2020/12/18 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
基于CSS3 animation动画属性实现轮播图效果
2017/09/12 HTML / CSS
2014年大学生工作总结
2014/11/20 职场文书
数学教师求职信范文
2015/03/20 职场文书
祝寿主持词
2015/07/02 职场文书
500字作文之周记
2019/12/13 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript