【发布时间】:2017-07-11 06:33:17
【问题描述】:
Here 是我的代码:
class myclass{
public function one(){
return 'sth';
}
public function two(){
function myfunc($arg){
if ($arg){
return $this->one();
} else {
return 'nothing';
}
myfunc(true);
}
}
}
$obj = new myclass;
echo $obj->$this->two();
正如您在小提琴中看到的那样,它会引发此错误:
致命错误:未捕获的错误:在 /in/E1U9n:25 中不在对象上下文中时使用 $this
我该如何解决这个问题?预期结果是sth。
【问题讨论】:
-
反对者,请发表评论并解释我的问题有什么问题?
-
如果你改变 echo $obj->$this->two(); 会发生什么到
echo $obj->two(); -
@PavelJanicek 在您的情况下,错误将消失3v4l.org/bhSiL。但是为什么
sth不会被打印出来呢? -
老实说不知道。据我所知,它应该返回一些东西......
-
另外,我强烈建议将此问题编辑为较新的问题,因为可以通过删除一个拼写错误来“解决”这个问题