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 相关文章推荐
FCKeditor添加自定义按钮
Mar 27 PHP
PHP 上传文件大小限制
Jul 05 PHP
一个PHP验证码类代码分享(已封装成类)
Jul 17 PHP
去除php注释和去除空格函数分享
Mar 13 PHP
thinkphp3.2.2前后台公用类架构问题分析
Nov 25 PHP
php+mysqli批量查询多张表数据的方法
Jan 29 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
Mar 19 PHP
php验证邮箱和ip地址最简单方法汇总
Oct 30 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
May 18 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
PHP 获取 ping 时间的实现方法
Sep 29 PHP
详解PHP素材图片上传、下载功能
Apr 12 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
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
基于PHP文件操作的详解
2013/06/05 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
PHP 7.4 新语法之箭头函数实例详解
2019/05/09 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
jquery实现简单的瀑布流布局
2016/12/11 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
2017/01/20 Javascript
jQuery实用密码强度检测
2017/03/02 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
HTML5实现微信拍摄上传照片功能
2017/04/21 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
nodejs实现用户登录路由功能
2019/05/22 NodeJs
weui中的picker使用js进行动态绑定数据问题
2019/11/06 Javascript
[38:44]DOTA2上海特级锦标赛A组小组赛#2 Secret VS CDEC第二局
2016/02/25 DOTA
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
Python基于贪心算法解决背包问题示例
2017/11/27 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
2019/08/28 Python
python画图常规设置方式
2020/03/05 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
武汉某公司的C#笔试题面试题
2015/12/25 面试题
实习评语
2013/12/16 职场文书
万年牢教学反思
2014/02/15 职场文书
地质灾害防治方案
2014/05/14 职场文书
关于军训的感想
2015/08/07 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS
Java对文件的读写操作方法
2022/04/29 Java/Android