Linux学习笔记
当前位置:Linux学习笔记 > PHP教程 > 正文

php的魔术方法使用

bbs.yuanmawu.net.jpg

PHP引入了__autoload()内置方法来自动包含类文件。__autoload()应该被写成单个参
数的方法。当PHP引擎遇到试图实例化未知类的操作时,会调用__autoload()方法,并将类
名当作字符串参数传递给它。

function __autoload($_className) {
require $_className.'.class.php';
}
$demo = new Computer();

 

PHP采用了__call()内置方法来屏蔽对象调用方法时产生的错误。当对象调用一个不存
在的方法时,会自动调用__call()方法。

private function __call($_methodName,$args) {
echo $_methodName.'方法不存在';
print_r($args);
}
$computer->go('我',1,'知道');

 

PHP使用__toString()内置方法来打印对象的引用。没有使用__toString()的对象是产生
一个错误,当打印对象的时候会自动调用__toString()方法。

class Computer {
private function __toString() {
return '打印对象';
}
}
echo new Computer();

 

PHP可以在类中定义一个__clone()内置方法来调整对象的克隆行为。当一个对象被克
隆的时候自动执行__clone()方法,而复制的对象可以在其方法体内进行调整。

class Computer {
public $_name ;
public function __clone() {
$this->_name = 'ibm';
}
}
$computer1 = new Computer();
$computer1->_name = 'dell';
$computer2 = clone $computer1;
echo $computer2->_name;

 

未经允许不得转载:Linux学习笔记 » php的魔术方法使用

赞 (0)
分享到:更多 ()