国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

PHP反射機制用法實例

2024-04-25 20:31:36
字體:
來源:轉載
供稿:網友

PHP反射機制用法,是PHP程序設計中比較重要的概念

本文實例講述了PHP反射機制的用法,分享給大家供大家參考之用。具體方法如下:

演示示例代碼如下所示:
<?php
class ClassOne {
function callClassOne() {
print "In Class One";
}
}
class ClassOneDelegator {
private $targets;
function __construct() {
$this->target[] = new ClassOne();
}
function __call($name, $args) {
foreach ($this->target as $obj) {
$r = new ReflectionClass($obj);
if ($method = $r->getMethod($name)) {
if ($method->isPublic() && !$method->isAbstract()) {
return $method->invoke($obj, $args);
}
}
}
}
}
$obj = new ClassOneDelegator();
$obj->callClassOne();
?>

輸出結果:

In Class One

可見,通過代理類ClassOneDelegator來代替ClassOne類來實現他的方法。

同樣的,如下的代碼也是能夠運行的:
<?php
class ClassOne {
function callClassOne() {
print "In Class One";
}
}
class ClassOneDelegator {
private $targets;
function addObject($obj) {
$this->target[] = $obj;
}
function __call($name, $args) {
foreach ($this->target as $obj) {
$r = new ReflectionClass($obj);
if ($method = $r->getMethod($name)) {
if ($method->isPublic() && !$method->isAbstract()) {
return $method->invoke($obj, $args);
}
}
}
}
}
$obj = new ClassOneDelegator();
$obj->addObject(new ClassOne());
$obj->callClassOne();
?>

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 荥经县| 泰宁县| 阆中市| 内乡县| 南安市| 信宜市| 林口县| 晋宁县| 西盟| 藁城市| 营口市| 洪洞县| 普兰店市| 哈巴河县| 苗栗市| 乐东| 怀远县| 布拖县| 呼和浩特市| 达日县| 曲水县| 二连浩特市| 灵石县| 获嘉县| 宁化县| 普兰店市| 六安市| 禹城市| 磴口县| 建昌县| 垣曲县| 建始县| 双鸭山市| 平定县| 昆明市| 于田县| 曲周县| 阿鲁科尔沁旗| 长宁县| 廊坊市| 晋州市|