php (十七)常见魔术方法

来源:互联网 发布:java贪吃蛇程序结构图 编辑:程序博客网 时间:2024/05/16 08:25

1. __toString

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

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


2. __call

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

  示例:

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

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

3. __autoload()

在PHP4里面,当我们使用一个类的时候,必须将该类所以文件使用include或require加进来,这样我们就可以使用类了。
而对于PHP5来说也可以使用在PHP4里面的方式,将类文件包进来,但当有了__autoload之后,这种情况就可以靠编写规则也实现。
示例:
<?phpfunction __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来说就有必要,只要写入相应的加载规则即可。


原创粉丝点击