您的位置:首页 > 编程语言 > PHP开发

php (十七)常见魔术方法

2013-11-20 16:44 337 查看
1. __toString

_toString 方法在将一个对象转化成字符串时自动调用

__toString() 方法用于一个类被当成字符串时应怎样回应。例如 echo
$obj;
应该显示些什么。此方法必须返回一个字符串,否则将发出一条
E_RECOVERABLE_ERROR
级别的致命错误。

2. __call

在对象中调用一个不存在方法时,__call() 会被调用。

示例:

<?php
class all {
function __call($name,$arguments) {
print("no no!");
}
} $x = new all();
$x->getname();

?>


$name 参数是要调用的方法名称。$arguments 参数是一个枚举数组,包含着要传递给方法 $name 的参数。
3. __autoload()

在PHP4里面,当我们使用一个类的时候,必须将该类所以文件使用include或require加进来,这样我们就可以使用类了。

而对于PHP5来说也可以使用在PHP4里面的方式,将类文件包进来,但当有了__autoload之后,这种情况就可以靠编写规则也实现。
示例:
<?php
function __autoload($className){
echo $className."<br>";
include "./".$className.".class.php";
}

$o=new One();

$o->fun1();

Two::fun2();

$t=new Three();

$t->fun3();


因此,对于PHP5的autoload来说,当加载2个以上的文件或考虑到以后的扩展时或代码规范来说可以使用,对于一般的情况,我个人认为没有必要,但是如果同时使用多个类,加载不同的类文件,对于autoload来说就有必要,只要写入相应的加载规则即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: