<?php
class Person
{
private $name = null;
private $sex = null;
private $age = null;
/**
* 构造函数
*/
public function __construct($name)
{
$this->name = $name;
}
/**
* 析构函数
*/
public function __destruct()
{
echo '使用析构方法,销毁了对象!';
}
/**
* 在对象中使用不存在的函数时候调用,
* @param unknown $paramname 使用的函数名称
* @param unknown $paramarg 使用函数中的参数,数组形式
*/
public function __call($paramname,$paramarg)
{
if ($paramname == 'abc') {
echo '参数名是abc'.'参数是:'.$paramarg;
} else {
echo '参数名不是abc,是'.$paramname.'参数是:'.$paramarg[0];
}
}
/**
* 当对不可访问属性或不存在的属性进行赋值时
* @param unknown $paramname 属性名称
* @param unknown $paramarg 属性值
*/
public function __set($paramname,$paramarg)
{
echo '不可访问的参数是:'.$paramname.',值是:'.$paramarg.'<br/>';
}
/**
* 当对不可访问属性或不存在的属性取值时候调用
* @param unknown $paramname 要取值得属性名称
*/
public function __get($paramname)
{
if ($paramname == 'name') {
echo '你访问的是name属性,我要加上123'.$this->name.'123';
}
}
/**
* 魔术方法,直接输出对象时调用,使用return返回值。
*/
public function __toString()
{
return '您直接输出了对象,如果没有__tostring()方法,会报错!';
}
/**
* 当对不可访问属性或不存在的属性调用 isset() 或 empty() 时,__isset() 会被调用。
*/
public function __isset($paramname)
{
echo '属性是:'.$paramname.'您对不可访问或不存在的属性使用了isset()或empty()方法!';
}
}
?>