1、__get( $property ) 访问未定义的属性时调用 class lanjie{ function __get($name) { echo $name. property not found! ; }}$ob = new lanjie();echo $ob-g; 当我们调用对象$ob未定义的属性g时,调用拦截器__get()方法,输出“g property not found!”;
1、__get( $property ) 访问未定义的属性时调用
立即学习“PHP免费学习笔记(深入)”;
class lanjie
{
function __get($name)
{
echo $name." property not found! ";
}
}
$ob = new lanjie();
echo $ob->g;
当我们调用对象$ob未定义的属性g时,调用拦截器__get()方法,输出“g property not found!”;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
立即学习“PHP免费学习笔记(深入)”;
2、__set( $property , $value ) 给未定义的属性调用时赋值
ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有
立即学习“PHP免费学习笔记(深入)”;
class person
{
private $_age;
private $_name;
function __set($name, $value)
{
$method = "set". ucfirst($name);
echo $method;
if(method_exists($this, $method) )
{
return $this->$method( $value );
}
}
function setName( $name )
{
$this->_name = $name;
if( !is_null($this->_name) )
{
$this->_name = strtoupper($this->_name);
}
}
function setAge( $age )
{
return $this->_age = (int)$age;
}
}
$p = new person();
$p->name = 'bob';
print_r( array( $p ) );
这里我们可以很清楚的看到 , 当给未定义的‘name’赋值时 , 会调用“__set()”
其他的还有 __call(), __isset() , __unset();
这里最有用和最常用的的是__call() , 当调用一个为存在的方法时被调用; __isset()是在对一个为定义的属性使用isset()函数时被调用, __unset是在对未定义的数以使用unset时被调用
立即学习“PHP免费学习笔记(深入)”;
http://blog.csdn.net/shuiping567541/article/details/7061258










