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 年龄计算函数(精确到天)
Jun 07 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
php操作xml入门之cdata区段
Jan 23 PHP
PHP中把对象转换为关联数组代码分享
Apr 09 PHP
再Docker中架设完整的WordPress站点全攻略
Jul 29 PHP
PHP环境搭建的详细步骤
Jun 30 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)
Sep 22 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
php 多继承的几种常见实现方法示例
Nov 18 PHP
PHP执行linux命令6个函数代码实例
Nov 24 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
Mar 04 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的memcached客户端memcached
2011/06/14 PHP
php json_encode值中大括号与花括号区别
2013/09/30 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
JS匀速运动演示示例代码
2013/11/26 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
2015/04/02 Javascript
jQuery实现首页顶部可伸缩广告特效代码
2015/04/15 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
bootstrap表单按回车会自动刷新页面的解决办法
2017/03/08 Javascript
react-router中的属性详解
2017/06/01 Javascript
详解express与koa中间件模式对比
2017/08/07 Javascript
解决vue2中使用axios http请求出现的问题
2018/03/05 Javascript
浅谈手写node可读流之流动模式
2018/06/01 Javascript
js中apply()和call()的区别与用法实例分析
2018/08/14 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
python实现控制台打印的方法
2019/01/12 Python
详解解决Python memory error的问题(四种解决方案)
2019/08/08 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
荷兰照明、灯具和配件网上商店:dmlights
2019/08/25 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
运动会通讯稿400字
2014/01/28 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
1亿有多大教学反思
2014/05/01 职场文书
农村党员对照检查材料
2014/09/24 职场文书
指导教师推荐意见
2015/06/05 职场文书
运动会闭幕式主持词
2015/07/01 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
Nebula Graph解决风控业务实践
2022/03/31 MySQL