私は三項演算子を頻繁に使用しますが、これに関するドキュメントで何も見つけることができず、いつも疑問に思っていました。
考えられる例は次のとおりです。
echo ($something->message ? $something->message : 'no message');
ご覧のとおり、$ something-> messageが正しければ、$ something-> messageを返しますが、なぜ2回書き込むのでしょうか。次のようなことを行う方法はありますか?
echo ($something->message ? this : 'no message');
今はプログラミング理論に精通していないので、前者を「これ」のようなもので参照できない理由があるのではないでしょうか。これは、三項演算子の使用を合理化しませんか?私の例のようなものでは、それはかなり役に立たないですが、それが
echo (function(another_function($variable)) ? function(another_function($variable)) : 'false');
私はこれを行う方法を見つけることができないので、それは不可能だと思います。間違っている場合は私に知らせてください。そうでない場合は、どうしてですか?なぜこれが不可能なのか、技術的な理由は何ですか、それとも決して起こらなかっただけなのですか?それを変数として宣言してから、その変数に対してテストする必要がありますか?