我正在使用速记if语句来验证是否将值分配给变量,我的问题是我应该将语句分配给变量,因为如果我分配了它或不是。
语句未分配给变量|工作
!empty($name) ? $name : $name="";
分配给变量的语句|也工作
$is_name = (!empty($name)) ? $name : $name="" ;
两个语句都在起作用,但是使用哪一个是正确的或更好的。
在PHP 5.3 中,您可以使用以下方式:
$is_name = $name ?: "";
注意:在您的情况下,这可能不是最好的主意,因为如果未设置$名称,它会产生警告。在这里,我仍然会推荐普通方式
$is_name = isset($name) ? $name : "";
但是问题是为什么无论如何要有一个非初始化的变量?
如果您只有$名称可以是一个空字符串,并且您想在这种情况下给它一个默认值,那么?:操作员是否适合您。
$is_name = $name ?: "default value";
这可能更好。您不需要额外的!Operaiton和可变分配。
$is_name = empty($name) ? "" : $name;
或
$is_name = isset($name) ? $name : ""; //recomended this one