我经常使用三元运算符,但在文档中找不到任何关于此的信息,一直很好奇。
以下是一个可能的例子:
echo ($something->message ? $something->message : 'no message');
正如您所看到的,如果 $something->message 正确,我们会返回 $something->message,但为什么要写两次呢?有没有一种方法可以这样做:
echo ($something->message ? this : 'no message');
现在我对编程理论不是很熟悉,所以前者不能像“this”一样被引用可能有原因,但为什么不呢?这样做不会简化三元运算符的使用吗?对于像我的例子那样的东西,它非常无用,但假设它是
echo (function(another_function($variable)) ? function(another_function($variable)) : 'false');
我找不到任何方法来做到这一点,所以我认为这是不可能的,如果我错了,请告诉我,否则:为什么不行?为什么这不可能,是技术上的原因,还是只是从未发生过的事情?我应该声明它为一个变量然后对该变量进行测试吗?