1
jybox 2013-11-12 21:47:48 +08:00
and 优先级比 or 高,然后按照短路求值的规则,两种写法确实等价。
用这种方式要注意第二个部分的表达式必须要为 ture 才行。 这种写法因为太反人类确实比较少见,不过下面这种就比较常见了: mysql_query($query) or die(mysql_error()); |
2
dorentus 2013-11-12 21:57:38 +08:00
单层双分支的话,还是用 isset($v) ? print('true') : print('false'); 吧。
|
3
dorentus 2013-11-12 21:58:05 +08:00
print($isset($v) ? 'true' : 'false');
|
4
Jat001 OP @jybox print() 的返回值是 1,exit() 没有返回值,但我试了 isset($v) and exit('true') or exit('false'); true 和 false 都能返回。
|
5
raincious 2013-11-12 22:17:59 +08:00
楼主不要这样写,这样会增加代码阅读的复杂程度,代码审核的同学不太方便。
|
8
shiny 2013-11-12 22:57:13 +08:00
一样的,不过是典型的不友善的写法,代码主要是为了写给人看的,只是顺便也能用机器执行而已。
Discuz 里有差不多的东西,不过他们的源码教坏了很多 php 新手。 |
9
ichou 2013-11-13 21:49:56 +08:00
短路写法而已。。短路比起if其实优点蛮多的,但是你这种链式短路真心不推荐。。
最简单原因:丑 还是用三目运算吧 |