三元运算是我个人比较喜欢写的一种方式,书写简单,可读性强。PHP7增加了三元运算新的写法,让我们的语法更简洁。
先看一下我以前是这样写的:
<?php
//正常写法
if(isset($_GET['user'])){
$user=$_GET['user'];
}else{
$user='Guest';
}
//使用三元运算简写成
$user=isset($_GET['user'])?$_GET['user']:'Guest';
PHP7到来了,我们可以这样写了:
<?php
//php7的写法
$user=$_GET['user']??'Guest';//等同于 $user=isset($_GET['user'])?$_GET['user']:'Guest';
使用两个问号(??)替代isset。
表示如果$_GET['user']非空,则$user = $_GET['user'],
如果$_GET['user']为空,则 $user = ‘Guest’;
<?php
echo '1、';
echo $a ?? $b ?? $c ?? '$a、$b、$c都不存在'; //输出$a、$b、$c都不存在
echo PHP_EOL; //换个行
echo '2、';
$a = '$a存在';
echo $a ?? $bb ?? $c ?? '$a、$b、$c都不存在'; //输出$a存在
echo PHP_EOL; //换个行
echo '3、';
unset($a);
$b = '$b存在';
echo $a ?? $b ?? $c ?? '$a、$b、$c都不存在'; //输出$b存在
echo PHP_EOL; //换个行
echo '4、';
unset($b);
$c = '$c存在';
echo $a ?? $b ?? $c ?? '$a、$b、$c都不存在'; //输出$c存在
echo PHP_EOL; //换个行
/*------重点在这里哦-------------*/
$a = '$a存在';
$b = '$b存在';
$c = '$c存在';
echo '5、';
echo $a ?? $b ?? $c ?? '$a、$b、$c都不存在'; //输出$a存在
/*相当于
if(isset($a)){
echo $a;
}elseif(isset($b)){
echo $b;
}elseif(isset($c)){
echo $c;
}else{
echo '$a、$b、$c都不存在';
}
*/
??可以使用很多组,对应elseif哦,这样我们可以节约很多代码。。。我好喜欢的样子。。。
php三元运算符?:的简写形式可用于PHP5.3+
表达式 (expr1) ? (expr2) : (expr3) 在 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
举个栗子:
<?php
$a='成功了';
echo $a?:'失败了';//输出成功了
$a='';
echo $a?:'失败了';//输出失败了
$a=true;
echo $a?:'失败了';//输出 1
$a=0;
echo $a?:'失败了';//输出 失败了
除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:https://www.55mx.com/post/55
《php7 新发现之三元运算 ??与?:的区别》的网友评论(0)