技术开发 频道

PHP开发者必须了解的9个魔术方法

  __clone

  我们看过一个使用clone关键字的例子,在我的介绍从入门到oop的第二部分,创建对象的副本,而不是有两个变量指向同一个实际的数据。在一个类中重写此方法,我们可以观察发生了什么当在对象上使用clone关键字时,。虽然这是不是我们每一天能遇到的,一个漂亮的用例是创建一个真正的单例模式通过添加private访问修饰符给这个方法。

  __toString

  无疑把最好的始终留到最后,__toString方法是一个非常方便的附加方法对于我们的工具包。该方法可以声明覆盖对象的行为,当作为一个字符串输出时,例如,当它被输出时。如果你想能输出对象到模板中,你可以使用此方法来控制输出结果。让我们再来看看在Penguin类中:

class Penguin {

  
public function __construct($name) {
      
$this->species = 'Penguin';
      
$this->name = $name;
  }

  
public function __toString() {
      
return $this->name . " (" . $this->species . ")\n";
  }
}

  在适当的位置,输出该对象通过调用echo输出它,如:

$tux = new Penguin('tux');
echo $tux;

  我不常常使用这种捷径,但是知道它的存在是很有用的。

  更多魔术方法

  更多参考 http://php.net 列出的所有的魔术方法(是的,不仅仅是文中所列出的,我仅仅选出那些我认为最好开始学习的。)如果你想了解其他魔术方法,请仔细查看。

0
相关文章