我对php并不是特别熟悉,并且在了解正在发生的事情时遇到了麻烦。使用我所拥有的压缩骨架:
class Helper
{
public function __construct($value)
{
$this->value = $value;
//etc
}
private function prefix($val)
{
return '1234' . $val;
}
private function otherFunction()
{
$this->value->someFunction(function ($err, $result) {
if($err !== null) {
echo $err->getMessage();
}
return $result;
});
}
public function help()
{
echo $this->prefix('5678'); //outputs 12345678
echo is_null($this->otherFunction()); //outputs 1
}
}
为什么otherFunction返回null?我可以在echo $result
之前return
看到我的期望,但是此后为空。
答案 0 :(得分:3)
您的otherFunction()
不返回任何内容。可能您echo $result
在回调函数内部传递给了$this->value->someFunction()
。
在return
之前添加$this->value->someFunction(...
,以从otherFunction()
返回值。