PHP 实例方法与变量
PHP instance method vs. variable
下面的两个代码可能给出不同的结果?
这按我的预期运行:
$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:
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;
}
请检查您的php_error_log。
PHP 的 empty 在您使用 PHP 版本 < 5.5:
时不支持表达式
Prior to PHP 5.5, empty() only supports variables; anything else will
result in a parse error. [...]
可能这就是为什么未到达 if 语句中的代码的原因。
下面的两个代码可能给出不同的结果?
这按我的预期运行:
$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:
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;
}
请检查您的php_error_log。
PHP 的 empty 在您使用 PHP 版本 < 5.5:
时不支持表达式Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. [...]
可能这就是为什么未到达 if 语句中的代码的原因。