PHP魔术方法以及关于独立实例与相连实例的全面讲解

所属分类: 网络编程 / PHP编程 阅读数: 1342
收藏 0 赞 0 分享
<?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实现像JSP,ASP里Application那样的全局变量

用php实现像JSP,ASP里Application那样的全局变量
收藏 0 赞 0 分享

自动分页的不完整解决方案

自动分页的不完整解决方案
收藏 0 赞 0 分享

FCKeditor的安装(PHP)

FCKeditor的安装(PHP)
收藏 0 赞 0 分享

mysql5详细安装教程

mysql5详细安装教程
收藏 0 赞 0 分享

isset和empty的区别

isset和empty的区别
收藏 0 赞 0 分享

php5.2时间相差8小时

php5.2时间相差8小时
收藏 0 赞 0 分享

安装APACHE

安装APACHE
收藏 0 赞 0 分享

PHP5 安装方法

PHP5 安装方法
收藏 0 赞 0 分享

PHP has encountered an Access Violation

PHP has encountered an Access Violation
收藏 0 赞 0 分享

MYSQL环境变量设置方法

本文介绍了mysql数据库中环境变量的设置方法,如何设置mysql数据库的环境变量,有需要的朋友参考下
收藏 0 赞 0 分享
查看更多