2017-08-29 8 views
1

指定されたインデックスを持たない破壊された配列にデフォルト値を設定する方法はありますか?PHP 7.1の配列破棄操作のデフォルト値

渡されたオブジェクトは、(以下の例で、 name小道具に)性質を持っていない場合、それはデフォルト値になりますES6、内のオブジェクト破壊と同様に

:私は「

const ({name = '', age}) => { 
}; 

をmは、現在、以下のような配列を破壊:しかし

// Inside my class 
public function __construct(array $props) { 
    [ 'id' => $this->id, 'name' => $this->name ] = $props; 
} 

を、私は時にノー'id'$this->idがデフォルト値として0を拾うことができるように'id'は、オプションになりたいです 合格。

+0

あなたは配列 '[ 'ID' =>の$ this - >のid '名前' =>の$ this - >名前]に割り当てることはできません'。値は変数にのみ割り当てることができます。 – 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

@ ChristopherFranciscoありがとうございました。私は配列を使う新しい方法を発見しました...ありがとう! – sensorario