欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【PHP5.0对象模型探索之重载】,下面是详细的分享!
PHP5.0对象模型探索之重载
PHP4中已经有了重载的语法来建立对于外部对象模型的映射,就像Java和COM那样.PHP5带来了强大的面向对象重载,允许程序员建立自定义的行为来访问属性和调用方法。重载可以通过__get,__set,and__call几个特殊方法来进行.当Zend引擎试图访问一个成员并没有找到时,PHP将会调用这些方法.
在下面的例子中,__get和__set代替所有对属性变量数组的访问.如果必要,你可以实现任何类型你想要的过滤.例如,脚本可以禁止设置属性值,在开始时用一定的前缀或包含一定类型的值.
__call方法说明了你如何调用未经定义的方法.你调用未定义方法时,方法名和方法接收的参数将会传给__call方法,PHP传递__call的值返回给未定义的方法.
Listing1User-leveloverloading
classOverloader
{
private$properties=array();
function__get($property_name)
{
if(isset($this->properties[$property_name]))
{
return($this->properties[$property_name]);
}
else
{
return(NULL);
}
}
function__set($property_name,$value)
{
$this->properties[$property_name]=$value;
}
function__call($function_name,$args)
{
print("Invoking$function_name()n");
print("Arguments:");
print_r($args);
return(TRUE);
}
}
$o=newOverloader();
//invoke__set()给一个不存在的属性变量赋值,激活__set()
$o->dynaProp="DynamicContent";
//invoke__get()激活__get()
print($o->dynaProp."n");
//invoke__call()激活__call()
$o->dynaMethod("Leon","Zeev");
?>
以上所分享的是关于PHP5.0对象模型探索之重载,下面是编辑为你推荐的有价值的用户互动:
相关问题:php 到底可不可以重载
答:php 作为一种弱类型语言,本身不能像强类型如java ,c++那样,直接的实现重载。不过可以通过一些方法,间接的实现重载。 使用一个统一的函数来实现重载。该方法要使用func_get_args()和func_num_args()方法。 2.当对象试着调用不存在或者受权限... >>详细
相关问题:PHP重载 有什么用
答:除非你要自己写框架就用到,用框架一般不会用到,而且电商一般就是买一些电商系统如ecshop进行二次开发,这样比较快速,除非你们公司有财力,想要自己开发个电商网站 >>详细
相关问题:PHP怎么重载已经存在的方法
答:PHP不支持重载,但是可以利用灵活性模拟JAVA的重载,另外PHP是支持重写的。 模拟重载的例子我写了个,你参考一下 function overloadTest(){ $name = "overload".func_num_args(); $name(); } function overload0(){ echo 'overload0'; } functio... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
