PHP实例方法与变量

时间:2016-09-06 12:00:57

标签: php oop instance-methods

下面的两个代码可能会给出不同的结果吗?

这就像我预期的那样:

$message = new Message();
$cond = $message->getMessage();
$helper->log($cond);
if(!empty($cond)){
  // do my stuff
}

这是我开始想知道为什么给我不同结果的地方:

$message = new Message();
$helper->log($message->getMessage());
if(!empty($message->getMessage())){
  // do my stuff
}

我修改的是我将$cond变量更改为$message->getMessage()

这是消息类的缩写:

class Message {
  private $input;
  private $message;

public function Message()
{
  $this->input = json_decode(file_get_contents('php://input'), true);
  // ...
  $this->message = $this->input['entry'][0]['messaging'][0]['message']['text'];
  //...
}
}

这是getter方法:

public function getMessage()
{
  return $this->message;
}

1 个答案:

答案 0 :(得分:4)

请检查你的php_error_log。

PHP的empty在您使用PHP版本时不支持表达式< 5.5:

  

在PHP 5.5之前,empty()仅支持变量;别的什么都会   导致解析错误。 [...]

这可能是为什么没有达到if语句中的代码的原因。