讨论数量:
这是一种合理利用编程语言语法的一种简写。
$b=$a
是变量赋值,赋值一定成功。
!empty($a)
是一个逻辑表达式,判断$a
是否为空。
这一行,完整的应该是
if (!empty($a)) {
$b = $a;
}
简写就是 !empty($a)
表达式本身是有返回值的,返回值是布尔值。当该表达式成立时,会执行 &&
且语句,且 $b=$a
完成赋值。
再有比如 !$model->isEmpty() && Db::create($model)
类似的还有javascript的方法默认值,比如:
function test(a) {
return a || 'abc';
}
let v = null
console.log(test(v))// 输出 'abc'
这个是表达式中的“短路原则”,&& 前的表达式如果是 false,则不执行 && 后的表达式,类似的还有 ||
这种短路原则的表达式, 可以看做是 if 语句的简写
这是一种合理利用编程语言语法的一种简写。
$b=$a
是变量赋值,赋值一定成功。!empty($a)
是一个逻辑表达式,判断$a
是否为空。这一行,完整的应该是
简写就是
!empty($a)
表达式本身是有返回值的,返回值是布尔值。当该表达式成立时,会执行&&
且语句,且$b=$a
完成赋值。再有比如
!$model->isEmpty() && Db::create($model)
类似的还有javascript的方法默认值,比如: