最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

第十一節(jié) 重載 [11]

 更新時間:2006年10月09日 00:00:00   作者:  

PHP4中已經(jīng)有了重載的語法來建立對于外部對象模型的映射,就像Java和COM那樣. PHP5帶來了強大的面向?qū)ο笾剌d,允許程序員建立自定義的行為來訪問屬性和調(diào)用方法.

重載可以通過__get, __set, and __call幾個特殊方法來進(jìn)行. 當(dāng)Zend引擎試圖訪問一個成員并沒有找到時,PHP將會調(diào)用這些方法.

在例6.14中,__get和__set代替所有對屬性變量數(shù)組的訪問. 如果必要,你可以實現(xiàn)任何類型你想要的過濾. 例如,腳本可以禁止設(shè)置屬性值, 在開始時用一定的前綴或包含一定類型的值.

__call方法說明了你如何調(diào)用未經(jīng)定義的方法. 你調(diào)用未定義方法時,方法名和方法接收的參數(shù)將會傳給__call方法, PHP傳遞__call的值返回給未定義的方法.

Listing 6.14 User-level overloading
<?php
class Overloader
{
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()<br>n");
print("Arguments: ");
print_r($args);

return(TRUE);
}
}
$o = new Overloader();

//invoke __set() 給一個不存在的屬性變量賦值,激活__set()
$o->dynaProp = "Dynamic Content";

//invoke __get() 激活__get()
print($o->dynaProp . "<br>n");

//invoke __call() 激活__call()
$o->dynaMethod("Leon", "Zeev");
?>

相關(guān)文章

最新評論

泰州市| 商都县| 图片| 枞阳县| 桂东县| 湖口县| 中方县| 鱼台县| 玉山县| 来安县| 定边县| 嘉鱼县| 邵武市| 万荣县| 宜宾市| 巨野县| 容城县| 雅安市| 泉州市| 甘泉县| 右玉县| 宁远县| 西和县| 凤阳县| 广丰县| 宜兴市| 巧家县| 呼伦贝尔市| 桑植县| 连山| 武平县| 巩义市| 广州市| 沾益县| 北辰区| 喀喇沁旗| 三明市| 东台市| 逊克县| 新沂市| 通辽市|