php |我应该将速记if语句分配给可变



我正在使用速记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

最新更新