2017-08-29 18 views
1

有沒有方法可以爲沒有指定索引的析構數組設置默認值?PHP 7.1中數組銷燬操作的缺省值

以破壞在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

不能分配給數組'[ '身份證'=> $這個 - > ID, '名'=> $這個 - >名]'。您只能將值分配給變量。 – sensorario

+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 
+0

這是另一種方式,我** **破壞**數組,而不是構造 –

+0

@克里斯托弗弗朗西斯科謝謝你。我發現了使用數組的新方法...非常感謝! – sensorario