oop — метод экземпляра PHP против переменной

Возможно, что два кода ниже дают разные результаты?

Это работает, как я ожидал:

$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;
}

0

Решение

Пожалуйста, проверьте ваш php_error_log.

РНР пустой не поддерживает выражения при использовании версии PHP < 5,5:

До PHP 5.5 empty () поддерживает только переменные; что-нибудь еще будет
привести к ошибке разбора. […]

Возможно, именно поэтому код внутри вашего оператора if не достигнут.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]