我经常发现自己写这样的东西:
$val = (isset($dog->owner->name)) ? $dog->owner->name : "no owner";
由于PHP在尝试计算不存在的变量时会抛出错误,因此以下操作将无法工作(PHP 5.3及以上版本适用于新的简写三元语法):
$val = ($dog->owner->name) ?: "no owner";
如果您关闭E_USER_NOTICE
报告,您可以实现上述目标,这不是我想做的事情。
是否有一个PHP命令,将返回一个变量的值,如果它被定义?
PHP没有这样的东西,但是您可以创建自己的。键是通过引用传递的:
function getVar(&$var, $default=null) {
if( isset($var) ) return $var;
else return $default;
}
$blah = getVar($blah, "my default value");
不,如果不执行您已经执行的操作,则没有命令检查变量是否已赋值。您必须执行检查或显式地确保变量具有值。在类构造函数中添加所有者的名字作为参数,或者在对象创建时给它一个默认赋值。您还可以创建一个方法来执行此任务,以便您可以重用代码。
您可以尝试错误控制操作符@
@$val = $dog->owner->name ?: "no owner";
echo $val, "'r'n";
你会得到你想要的