如果未设置其他变量,我想用另一个变量的内容或预定义值初始化变量。
我知道我可以使用
if(isset($var1)){
$var2 = $var1;
} else{
$var2 = "predefined value";
}
我认为这样做会更优雅:
$var2 = $var1 || "predefined value";
上次我检查过,这确实有用(或者我的记忆在欺骗我)。但是在这里,当我打印$ var2时,它总是1
。看来PHP检查语句$var1 || "predefined value"
是否为真,并将1
分配给$var2
。
我希望将“预定义值”分配给$ var2,以防$ var1不存在。
PHP的任何特性我在这里都缺少这个工作吗?
提前致谢
答案 0 :(得分:1)
我通常会创建一个这样的辅助函数:
function issetor(&$var, $def = false) {
return isset($var) ? $var : $def;
}
并使用变量的引用来调用它:
$var2 = issetor($var1, "predefined");
答案 1 :(得分:0)
我刚刚在 PHP 7 中看到,
会有一个新的缩写$c = ($a === NULL) ? $b : $a;
看起来像这样:
$c = $a ?? $b;
可以像这样扩展:
$c = $a ?? $b ?? $c ?? $d;
说明:$ c将被赋予左边的第一个值,这不是NULL。