我给实例变量分配了一个对象。这个对象有一个神奇的方法__invoke。这是行不通的,因为类没有dom()方法。
$this->dom = str_get_dom($template_data);
$this->dom('some arg');在类之外,下面的代码可以工作:
$dom = str_get_dom($template_data);
$dom('some arg');我怎样才能让它在我的班级中发挥作用呢?这个例子是关于php lib的,叫做ganon。
发布于 2018-03-05 18:32:16
问题是PHP使对象方法和对象属性有所不同。语法$foo->bar()要求$foo的类定义一个public function bar。它不会先查找属性bar,然后再尝试将其值作为callable调用。
您必须使用call_user_func将值作为函数显式调用。
https://stackoverflow.com/questions/49108072
复制相似问题