㈠ 关于php 三元运算符的优先级问题。请教
三元运算符的优先级是从右到左的,因此上面顺序是:
$i = 2;
先运行:($i == 2 ? "A" : $i == 1)
然后再运行 (? 'B' : 'C';)
假设第一个运行的结果是 $ret 那么$ret的值为A;
那么第二个可以写成
$ret?'B':'C';
因$ret的值为A,是真值,所以结果是B。
㈡ php 三元运算符可以像 if 那样同时判断多个条件吗请举例
凡是可以写在if后面的东西,都可以出现在三元运算的文号前面,例如:
echo ($a>$b || $a=0)?123:456;
㈢ PHP用三元运算符判断字符串
$str为读出的字符串
strlen($str)>30 ? echo substr($str,30)."..." : echo $str;
但是,这里有个问题,如果字符串是汉字和字母,数字等混编的时候(类似"这是1个字符串"),汉字的截取就会出现乱码,为避免这种情况,需要自己写函数来实现
㈣ PHP中三元运算符如何表示才对
你理解成if 语句就好了,但是你这条三元运算,也就只有做了判断,既没有输出也没有赋值
<?php echo $a==$b?"删除":"收藏";?>
if($a==$b){
echo "删除";
}else{
echo "收藏";
}
㈤ PHP中三元运算符如何表示当前值为空时舍弃这个条件
1 $if_summary = $row['IF_SUMMARY']==2?'是':'否';
PHP的三元运算符
这句话的意思就等于是
12345 if($row['IF_SUMMARY']==2){ $if_summary="是"; }else{ $if_summary="否"; }
三元运算符的功能与“if...else”流程语句一致,它在一行中书写,代码非常精练、执行效率更高。
在PHP程序中恰当地使用三元运算符能够令脚本更为简洁、高效。
代码格式如下:(expr1) ? (expr2) : (expr3);
解释:如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。
实现同样的功能,若使用条件流程语句,就需要书写多行代码:
123456 if(expr1) { expr2; } else { expr3; }
可见,前面所说的三元运算符之好并非夸张。可是,多数情况下我们只在代码较为简单的时候使用三元运算符,即执行语句只为单句的时候。如:
1 $a>$b ? print "a大于b" : print "a小于b";
事实上,三元运算符可以扩展使用,当设置的条件成立或不成立,执行语句都可以不止一句,试看以下格式:
(expr1) ? (expr2).(expr3) : (expr4).(expr5);
我们非常明显地看到,多个执行语句可以使用用字符串运算符号(“.”)连接起来,各执行语句用小角括号包围起来以表明它是一个独立而完整的执行语句。这样扩展后它的功能更为逼近“if...else”流程语句。
同时三元运算符还可以嵌套使用。例如,a大于b成立时:如果a小于c,那么x=c-a否则x=a-c;否则a小于b成立时:如果b小于c,那么x=c-b否则x=b-c:
$a>$b ? $x=($a<$c ? $c-$a : $a-$c) : $x=($b<$c ? $c-$b : $b-$c);
嵌套使用的三元运算符可读性不太好,日后对代码的维护极可能存在问题,但比起“if...else”之类的流程语句,在上述情形之下,它的确太简练了,这是它的诱人之处。
对于喜欢偷懒和追求代码简洁的人来说,用三元运算符取代if流程语句应该是绝佳的选择。即使不用考虑“三元”中条件句以外的任意某一“元”,使用三元运算符仍然比if语句简练。以下语句的语法是正确的,它们以小解引号的方式忽略了第二或第三“元”:
12 $a>$b ? print "Yes" : ""; $a>$b ? '': print 'No';
应该注意的是:在使用三元运算符时,建议使用print语句替代echo语句。
注意下列一串语句的理解:
1 $str = $_GET['abc'] ? 'wangjinbo' : 'wjb';
这里不能理解为:当$str等于$_GET['abc'] 时,赋值为 'wangjinbo' 否则赋值为 'wjb';因为一:判断相等应该用==;因原二:三元算符的语法是如上所示:(expr1) ? (expr2) : (expr3),显然上面的二元,三元'wangjinbo'或'wjb'不能单独构成一个有意义的表达式;
正确理解是:当$_GET['abc']为空(也就是否,PHP中 '',null,0,undifine,都等效布尔值false)时,将$str赋值为'wangjinbo',否则赋值为'wjb';
以上所述就是本文的全部内容了,希望大家能够喜欢。
㈥ 怎么简写php 中的三元运算符
三元运算符简写形式
旧式风格:echo $a ? $a : “No Value”;
可简写成:echo $a ?: “No Value”;
即如果省略三元运算符的第二个部分,会默认用第一个部分代替。
㈦ php三元表达式不能用echo吗
echo
$a == 1 ? 'one' :
$a == 2 ? 'two' :
$a == 3 ? 'three' :
$a == 4 ? 'foura' : 'other';
echo "\n";
㈧ 关于php三元运算符·求指点··我白痴了·
你对运算符的结合性理解错了
我给你打上括号吧
echo ("1"=="1"?"文本":"2"=="2")?"单选":"多选";
括号里返回 "文本","文本"是长度大于0的字符串,相当于 True,所以接下来返回 "单选"
㈨ php中运用三元运算符比较三个数大小并从大到小输出
非得用三元运算吗?
用其他的行不行?
个人觉得,用其他的反而更方便!
<?php
//方法一
//构造一个数组
$Num = array();
//给数组赋值3个随机数元素, 具体使用中, 数字的来源你自己替换
$Num[] = floor(rand());
$Num[] = floor(rand());
$Num[] = floor(rand());
//构造一个排序的自定义函数
function my_sort( $a, $b ) {
if ( $a == $b ) {
return 0;
}elseif( $a > $b ) {
return -1;
} else {
return 1;
}
}
//应用自定义函数排序数组
uasort( $Num, 'my_sort');
//输出
echo '方法一输出:', join(',', $Num ), '<br/><br/>';
//方法二
//构造一个数组
$Num = array();
//给数组赋值3个随机数元素, 具体使用中, 数字的来源你自己替换
$Num[1] = floor(rand());
$Num[2] = floor(rand());
$Num[3] = floor(rand());
//取得最大的和最小的数字
$Da = max( $Num );
$Xiao = min( $Num );
//删除找到的两个数字
unset( $Num[array_search( $Da, $Num)], $Num[array_search( $Xiao, $Num)] );
//得到中间的数字
$Zhong = join( $Num );
echo '方法二输出:', $Da, ',', $Zhong, ',', $Xiao;