魔术方法
__toString() 当输出对象时调用
__invoke () 当把对象当做方法时调用
__call($mehthod.$argument) 当调用不存在的方法时调用
__callStatic($mehthod.$argument) 当调用不存在的静态方法时调用
__set() 当设置一个不存在的变量时调用
__get() 当调用一个不存在的变量时调用
__isset() 当使用isset和empty判断变量是否存在时时调用
__unset() 当使用unset()时调用
__clone() 当克隆一个对象时调用
代码
<?php
class Student
{
public $domain;
public function __toString()
{
return "to string";
}
public function __invoke($a)
{
echo $a;
}
public function __call($name, $argument)
{
echo $name;
echo implode(',', $argument);
}
public static function __callStatic($name, $argument)
{
echo $name;
echo implode(',', $argument);
}
public function __get($name)
{
echo "get:" . $name;
}
public function __set($name, $value)
{
echo "set:" . $name . "-->" . $value;
}
public function __isset($name)
{
echo "isset:" . $name;
}
public function __unset($name)
{
echo "unset:" . $name;
}
public function __clone()
{
echo "clone";
}
}
$obj = new Student();
$obj->domain = "cnsecer.com";
$obj2 = clone $obj;
$obj2->domain = "mubansky.com";
echo "<br>";
echo $obj->domain;
echo "<br>";
echo $obj2->domain;
转载请注明:安全者 » php魔术方法的一些总结