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 相关文章推荐
Ajax PHP简单入门教程代码
Apr 25 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
Jun 02 PHP
使用PHP实现Mysql读写分离
Jun 28 PHP
php ckeditor上传图片文件名乱码解决方法
Nov 15 PHP
ThinkPHP多表联合查询的常用方法
Mar 24 PHP
PHP将回调函数作用到给定数组单元的方法
Aug 19 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
PHP 微信扫码支付源代码(推荐)
Nov 03 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
Laravel框架学习笔记之批量更新数据功能
May 30 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
PHP实现服务器状态监控的方法
2014/12/09 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
jQuery+HTML5实现图片上传前预览效果
2015/08/20 Javascript
jQuery实现带玻璃流光质感的手风琴特效
2015/11/20 Javascript
阿里巴巴技术文章分享 Javascript继承机制的实现
2016/01/14 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
JavaScript中object和Object的区别(详解)
2017/02/27 Javascript
JS实现针对给定时间的倒计时功能示例
2017/04/11 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
vue组件父子间通信详解(三)
2017/11/07 Javascript
JavaScript实现AOP详解(面向切面编程,装饰者模式)
2017/12/19 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
2018/01/02 Javascript
JS与CSS3实现图片响应鼠标移动放大效果示例
2018/05/04 Javascript
对类Vue的MVVM前端库的实现代码
2018/09/07 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
利用Opencv中Houghline方法实现直线检测
2018/02/11 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python Grid使用和布局详解
2018/06/30 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧(自定义信号与槽)详解与实例
2020/03/06 Python
中软Java笔试题
2012/11/11 面试题
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
管理专员自荐信
2014/01/26 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
安全生产网格化管理实施方案
2014/03/01 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
乡镇干部党的群众路线教育实践活动个人对照检查材料
2014/09/24 职场文书
产品质量保证书范本
2015/02/27 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang