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 相关文章推荐
JAVA/JSP学习系列之二
Oct 09 PHP
一个用于网络的工具函数库
Oct 09 PHP
PHPMailer安装方法及简单实例
Nov 25 PHP
深入php多态的实现详解
Jun 09 PHP
php旋转图片90度的方法
Nov 07 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
PHP实现XML与数据格式进行转换类实例
Jul 29 PHP
PHP实现抓取迅雷VIP账号的方法
Jul 30 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP 文件上传限制问题
Sep 01 PHP
如何用PHP websocket实现网页实时聊天
May 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
用IE远程创建Mysql数据库的简易程序
2006/10/09 PHP
PHP中动态显示签名和ip原理
2007/03/28 PHP
用来解析.htpasswd文件的PHP类
2012/09/05 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
基于Jquery的将DropDownlist的选中值赋给label的实现代码
2011/05/06 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
JS操作图片(增,删,改) 例子
2013/04/17 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
jquery带有索引按钮且自动轮播切换特效代码分享
2015/09/15 Javascript
原生javascript移动端滑动banner效果
2017/03/10 Javascript
Angular directive递归实现目录树结构代码实例
2017/05/05 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
Vue form表单动态添加组件实战案例
2019/09/02 Javascript
Vue+abp微信扫码登录的实现代码示例
2020/01/06 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
python类定义的讲解
2013/11/01 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
Django ORM 查询表中某列字段值的方法
2020/04/30 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
英国骑行、跑步、游泳、铁人三项运动装备专卖店:Wiggle
2016/08/23 全球购物
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
报关报检委托书
2014/04/08 职场文书
中学生关于梦想的演讲稿
2014/08/22 职场文书
施工安全员岗位职责
2015/04/11 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
亮剑观后感300字
2015/06/05 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书