首页 > 试题广场 >

哪一个三元运算符相当于此脚本( )

[单选题]
哪一个三元运算符相当于此脚本(     )
<?php
       if ($a<10){
              if($b>11){
                     if($c==10&& $d != $c) {
                            $x=0;
                     }else {
                            $x=1;
                     }
              }
       }
?>
  • $x = ($a < 10 || $b > 11 || $c == 10 && $d !=$c ) ? 0 : 1;
  • $x = (($a < 10 && $b > 11) || ($c == 10&& $d !=$c ) ) ? 0 : 1;
  • $x = ($a < 10 && $b > 11 && $c == 10 && $d !=$c ) ? 0 : 1;
  • 以上都不是
推荐
如果一开始的if条件判断为false,下面的if语句根本就不执行,哪里会ture输出0false输出1的结果呢?
编辑于 2016-03-03 21:30:16 回复(3)
三元运算符是水平层级的运算,而多层if嵌套是一种递进的运算。无法表示的。。。
发表于 2015-06-21 14:52:58 回复(4)
当$a>10的时候代码就没有往下执行了;而三元运算符当条件表达式不成了时还会输出另外的值。如果:$a>$B ? 1 : 2
说明:问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。
发表于 2016-05-16 14:34:36 回复(0)
当a大于等于时10 的时候直接就结束了,而不是$x等于0,我觉得应该选d
发表于 2015-11-05 21:20:57 回复(0)
D
if($a<10 && $b>11){
	$x = $c==10&& $d != $c ? 0 : 1;
}else{
	// $x = nothing
} 
发表于 2016-03-07 08:59:47 回复(0)
这个题目的陷阱在于 ,  if ($a<10) 部分的else 并没有 使  $x 等于 1 所以 ABC都不对 其他的也是如此
发表于 2022-02-17 11:36:44 回复(0)
按照题意:此题的规范的三元运算写法从里到外推应该是这样的:
$a <10 ? ($b>11 ? ( $c==10 && $d != $c ? 0 : 1) : '')  : '';
所以从结果答案来看,C是对的,只不过该运算没有其他考虑,不怎么规范,单单只看提来说,C是对的。
个人陋见,如部队欢迎指正~
发表于 2019-07-23 10:29:19 回复(0)
发表于 2019-05-29 11:04:26 回复(0)
$x = ($a<10 && $b>11)?(($c==10 && $d != $c)?0:1):;
发表于 2019-04-03 15:24:01 回复(0)
$x = ($a < 10 && $b > 11 && $c == 10 && $d !=$c ) ? 0 : ($a<10 && $b>11 && ($c!=10 || $d==$c)) ? 1 : NULL);
编辑于 2018-11-14 18:11:01 回复(0)
这个题,存在一定的误导,我选择了C  ,其实这些条件都满足的时候,才返回0 ;
没有考虑到 不满足 的时候,也返回了1  这是不正确的。

发表于 2018-09-29 11:14:01 回复(0)
如果一开始的if条件判断为false,下面的if语句根本就不执行,哪里会ture输出0false输出1的结果呢?
发表于 2018-04-10 20:45:17 回复(0)
三元运算符是水平层级的运算,而多层if嵌套是一种递进的运算。 其中一个if无法通过的话就没有答案
发表于 2018-03-16 08:12:20 回复(0)
这里考的是细不细心,主要关键点在题目中最后一个if
发表于 2018-01-29 11:13:58 回复(0)
应该选C
发表于 2017-10-19 21:08:44 回复(0)

重点记忆下面的顺序:

递增/递减 > ! > 算术运算符 > 大小比较 > (不)相等比较 > 引用>位运算符(^)> 位运算(|)> 逻辑与>逻辑或>三目>赋值>

and > xor>or

发表于 2017-10-05 11:06:05 回复(0)
$a =9; $b = 12; $c =10; $d = 1; $x = ($a < 10 && $b > 11 && $c == 10 && $d !=$c ) ? 0 : 1; echo $x; 

发表于 2017-09-07 16:01:51 回复(0)
真实环境中,写这么牛逼的三元运算符的,我是不喜欢用。可读性太差。。。没有实际意义
发表于 2017-06-14 12:09:24 回复(1)
三元运算不能像if那样嵌套去判断的
发表于 2017-05-24 17:29:21 回复(0)
  • $x = ($a < 10 && $b > 11 && $c == 10) ? 0 : 1;
发表于 2016-07-28 16:12:38 回复(0)
$x = $a < 10 && $b > 11 && ($c == 10 && $d !=$c ) ? 0 : 1;
发表于 2016-07-18 15:12:19 回复(0)