【发布时间】:2016-01-06 22:31:48
【问题描述】:
我想在一个对象上添加一个从该对象返回特定值的函数。
我现在有以下代码:
<?php
namespace sdk;
use core\Sdk;
class Contents extends Sdk {
public $url;
public $id;
public function __call($method, $args) {
if (isset($this->$method)) {
$func = $this->$method;
return call_user_func_array($func, $args);
}
}
public function getContents($id = '') {
$request = 'contents/list/'.$id;
return $this->getRequest($request);
}//getContents
public function getContent($id) {
$request = 'contents/detail/'.$id;
$this->object = $this->getRequest($request);
$this->object->getItemAttribute = function($attribute) {
var_dump($this->object);
};
return $this->object;
}//getContent
}//Class Contents
我尝试通过 tis 代码启动该方法
$contents->getContent(1);
$contents->object->getItemAttribute('titel');
但我不断收到错误“未定义的方法”
我做错了什么?
【问题讨论】:
-
你不能给stdClass添加方法,但是如果你在运行php7,你可以创建一个匿名类......除了你的类不是stdClass
-
好吧,我不是:/还有其他方法可以得到想要的结果吗?
-
你就不能用魔术
__get()方法吗? -
我不知道它是如何工作的......