本文目录一览:
- 1、PHP中?:什么意思
- 2、PHP的三目运算符是?
- 3、PHP三目运算“?:”的问题?
- 4、php三目运算符?10-3>2?0:true?5:3,为什么结果是3呢?
- 5、关于PHP的三目运算,究竟是怎样的?
PHP中?:什么意思
PHP中“?:”指的是三目运算符。
三目运算符,又称条件运算符,是计算机语言的重要组成部分。它是唯一有3个操作数的运算符,所以有时又称为三元运算符。一般来说,三目运算符的结合性是右结合的。
三目运算符提供了一种表达简单 if-else 语句的简写方法。该运算符由问号(?)和冒号(:)组成,其格式如下:表达式 ? 表达式 : 表达式 ;语句被称为条件表达式,它由 3 个子表达式组成,使用问号 ? 和冒号 : 分隔。-php三目接值
问号前面的条件表达式的部分是要测试的条件。这就像 if 语句的括号中的表达式。如果条件是真的,则执行 ? 和 : 之间的语句;否则,执行 : 之后的部分。如果认为有帮助,可以在子表达式周围放置圆括号
扩展资料:
运算规则:
对于条件表达式b ? x : y,先计算条件b,然后进行判断。如果b的值为true,计算x的值,运算结果为x的值;否则,计算y的值,运算结果为y的值。
一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,从右向左分组计算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行。
可以理解为: 条件 ? 结果1 : 结果2,里面的?号是格式要求。也可以理解为条件是否成立,条件成立为结果1,否则为结果2。
参考资料来源:百度百科-三目运算符
PHP的三目运算符是?
$a = ( 1 0) ? true : false; //三目运算符(三元表达式)与下边 if 语句意思一样
if( 1 0 ){
$a = true;
}else{
$a = false;
}
PHP三目运算“?:”的问题?
PHP三目运算符的左结合性并不是用不上的,你可以用如下语句:
echo $s != 1 ? $s != 2 ? $s != 3 ? "Unknown" : "three" : "two" : "one";
这样不需要括号了,而且不像你之前那句一样,不管变量$s值为几?都得做三次三目运算操作。
这里如果$s值为1,则在第一次三目运算中就跳出去了,不会再继续执行后面两次三目运算
哦~修正一下~你原来那加括号的写法,变量$s=1时,也是一次运算就跳出……
php三目运算符?10-3>2?0:true?5:3,为什么结果是3呢?
你这个是双重三目运算,它会先执行排在前面的运算,再执行后面的运算。我加个括号看的会明白些,如下:
(10-32 ? 0 : true)? 5 : 3,首先执行括号里的运算,10-3大于2,条件成立,所以输出结果是0,那么第二个运算公式就变成了0 ? 5 : 3,0表示假的意思,即条件不成立,所以输出结果是3。-php三目接值
建议写多重三目运算时分开写,不要合在一起,比如:
$a = true ? 5 : 3;
echo 10-3 2 ? 0 : $a;
三目运算符
语法:
条件 ? 结果1 : 结果2
说明:
问号前面的位置是判断的条件,如果满足条件时结果1,不满足时结果2。
关于PHP的三目运算,究竟是怎样的?
你可以吧你的代码精简下,比如如下:
?php
$arg = 'B';
$vehicle =(( $arg == 'B' ) ? 'bus' : ( $arg == 'A' )) ? 'airplane' : 'feet';
echo $vehicle;
这样看就很明显了,先执行括号中的三目运算。