我有一个填充对象的函数.
public static function populateObj($data) {
$obj = new Obj();
$obj->setVal1($data['val1']);
$obj->setVal2($data['val2']);
$obj->setId($data['id']);
return $obj;
}
Run Code Online (Sandbox Code Playgroud)
如果使用参数给出所有值,则$data它可以正常工作.但如果缺少某些东西,则会抛出错误.
是否有更短,更容易或更好的方法设置null为默认值:
$data['val1'] ? $obj->setVal1($data['val1']) : $obj->setVal1(null);
...
Run Code Online (Sandbox Code Playgroud)
您可以与默认数组合并,然后$data将包含所有这些键:
$data = array_merge(['val1'=>null, 'val2'=>null, 'id'=>null], $data);
Run Code Online (Sandbox Code Playgroud)
在PHP> = 7.0中,您可以使用Null Coalescing Operator:
$obj->setVal1($data['val1'] ?? null);
Run Code Online (Sandbox Code Playgroud)