有没有办法为没有指定索引的被破坏数组设置默认值?
与在ES6中破坏对象类似,如果传递的对象没有属性(在下面的示例中为name
道具),则它将具有默认值:
const ({name = '', age}) => {
};
我目前正在销毁如下数组:
// Inside my class
public function __construct(array $props) {
[ 'id' => $this->id, 'name' => $this->name ] = $props;
}
但是,我希望'id'
是可选的,这样$this->id
可以在没有传递0
时将'id'
作为默认值。
答案 0 :(得分:0)
这对我有用:
<?php
class Ciao
{
private $id = 666;
public function __construct(array $props) {
$props['id'] = $props['id'] ?? 666;
[ 'id' => $this->id, 'name' => $this->name ] = $props;
}
}
$ciao = new Ciao([
'id' => 42,
'name' => 'ciao',
]);
// $ciao::$id == 42
$ciao = new Ciao([
'name' => 'ciao',
]);
// $ciao::$id == 666