Возможно, что два кода ниже дают разные результаты?
Это работает, как я ожидал:
$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'];
//...
}
}
И это метод получения:
public function getMessage()
{
return $this->message;
}
Пожалуйста, проверьте ваш php_error_log.
РНР пустой не поддерживает выражения при использовании версии PHP < 5,5:
До PHP 5.5 empty () поддерживает только переменные; что-нибудь еще будет
привести к ошибке разбора. […]
Возможно, именно поэтому код внутри вашего оператора if не достигнут.
Других решений пока нет …