以下の2つのコードが異なる結果をもたらす可能性はありますか?PHPインスタンスメソッドと変数の比較
これは私が期待通りに動作します:私は、変更されたすべてのiが$message->getMessage()
に$cond
変数を変更したことである
$message = new Message();
$helper->log($message->getMessage());
if(!empty($message->getMessage())){
// do my stuff
}
:私は私に異なる結果を与えた理由を不思議開始どこ
$message = new Message();
$cond = $message->getMessage();
$helper->log($cond);
if(!empty($cond)){
// do my stuff
}
はこれがあります。
これは、メッセージクラスのコンストリクターです:
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;
}
2番目のケースで見た「異なる結果」とは何ですか? – Chris
同じ状況では、最初のコードはif文に実行されますが、2番目のコードは実行されません。また、ログ機能の動作も同じです。 – szenbalu
'getMessage()'は冪等ですか? – David