//实例化对象时,会调用对象的__construct方法
$obj = new Object();
//给对象不存在的属性赋值时,会调用对象的__set方法
$obj->title = "hello";
//使用对象不存在的属性时,会调用对象的__get方法
echo $obj->title;
//调用对象不存在的方法时,会调用对象的__call方法
$obj->test("hello",123,567);
//调用不存在的类静态方法时,会调用类的__callStatic方法
Object::staticMethod("static","not found method");
//直接输出对象时,会调用对象的__toString方法
echo $obj;
//将一个对象当作函数一样使用时,会调用对象的__invoke方法
echo $obj("test");
//克隆对象时,会调用对象的__clone方法
$obj2 = clone $obj;
//判断对象属性是否存在时,会调用对象的__isset方法
var_dump(isset($obj->aaa));
//销毁对象属性时,会调用对象的__unset方法
unset($obj->aaa);
class Object{
protected $array = array();
function __construct()
{
echo __METHOD__."你正在实例化对象<br>";
}
function __set($name, $value)
{
$this->array[$name]=$value;
}
function __get($name)
{
return $this->array[$name];
}
function __call($name, $arguments)
{
var_dump($name,$arguments);
return "magic function\n";
}
static function __callStatic($name, $arguments)
{
var_dump($name,$arguments);
return "magic static function";
}
function __toString()
{
return __CLASS__.'<br>';
}
function __invoke($arguments)
{
var_dump($arguments);
return __METHOD__.'<br>';
}
function __clone()
{
echo __METHOD__."你正在克隆对象<br>";
}
function __isset($name)
{
echo __METHOD__."你想判断有没有属性".$name."<br>";
return 1;
}
function __unset($name)
{
echo __METHOD__."你想删除属性".$name."<br>";
}
function __destruct()
{
echo __METHOD__."你正在注销对象<br>";
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有