php ?? 和 ?: 操作符的用法和区别

 PHP基础  2021-06-01  admin  1158  1563

php ?? 和 ?: 操作符的用法和区别
$a = 0;
$b = $a ?? 'default'; //int(0)
$b2 = isset($a) ? $a : 'default'; //int(0)
$c = $a ?: 'default'; //string(7) "default"
$c2 = !empty($a) ? $a : 'default'; //string(7) "default"
var_dump($b, $b2, $c, $c2);

$a = false;
$b = $a ?? 'default'; //bool(false)
$b2 = isset($a) ? $a : 'default'; //bool(false)
$c = $a ?: 'default'; //string(7) "default"
$c2 = !empty($a) ? $a : 'default';
var_dump($b, $b2, $c, $c2); //string(7) "default"

$a = [];
$b = $a ?? 'default'; //array(0) {}
$b2 = isset($a) ? $a : 'default';  //array(0) {}
$c = $a ?: 'default'; //string(7) "default"
$c2 = !empty($a) ? $a : 'default'; //string(7) "default"
var_dump($b, $b2, $c, $c2);

$b = $aa ?? 'default'; //string(7) "default"
$b2 = isset($a) ? $a : 'default'; //string(7) "default"
$c = $aa ?: 'default'; //Notice: Undefined variable: aa  string(7) "default"
$c2 = !empty($a) ? $a : 'default'; //Notice: Undefined variable: aa  string(7) "default"
var_dump($b, $b2, $c, $c2);

// ?? 是 isset() 的简写形式 $b = $a ?? 'default'; 等价于 $b = isset($a) ? $a : 'default';

// ?: 是 !empty() 的简写形式 $c = $a ?: 'default'; 等价于 $c = !empty($a) ? $a : 'default';

empty($var) 当var存在,并且是一个非空非零的值时返回 FALSE 否则返回 TRUE.

以下的值被认为是空的:"" (空字符串);   0 (作为整数的0);    0.0 (作为浮点数的0);   "0" (作为字符串的0);   NULL;     FALSE;     array() (一个空数组);    $var;     (一个声明了,但是没有值的变量);

isset 如果 var 存在并且值不是 NULL 则返回 TRUE,否则返回 FALSE


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

相关推荐


php 正则获取字符串中所有图片链接地址并下载图片

php 正则获取字符串中所有图片链接地址并下载图片/** *获取图片的绝对地址 *@paramstring$content *@returnmixed *@Author:code.cent123.com */ functiongetImageUrl(string$content="") { //$pattern="/src=[\"\'

PHP常用正则表达式汇总

PHP常用正则表达式汇总"^\d+$"  //非负整数(正整数+0) "^[0-9]*[1-9][0-9]*$"  //正整数 "^((-\d+)|(0+))$"  //非正整数(负整数+0) "^-[0-9]*[1-9][0-9]*$"  //负整数 "^-?\d+$"    //整数

php 验证域名是否合法

/** *验证域名是否合法 *@paramstring$domain *@returnbool */ functionverify_domain(string$domain):bool { $res="/^(?=^.{3,255}$)(http(s)?:\/\/)(www\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-z

thinkphp6 tp6封装的关于数组的常用方法

thinkphp6 tp6封装的关于数组的常用方法