2017-08-29 3 views
1

Est-il possible de définir une valeur par défaut pour un tableau détruit qui n'a pas l'index spécifié?Valeur par défaut pour l'opération de destruction de tableau dans PHP 7.1

similaires à destructing un objet dans ES6, où si l'objet passé n'a pas la propriété (dans l'exemple suivant, le name prop), il aura une valeur par défaut:

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

Je m en train de détruire un tableau comme ce qui suit:

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

Cependant, je veux que le 'id' soit facultative, de sorte que $this->id peut ramasser 0 comme valeur par défaut en l'absence de 'id' est passé.

+0

Vous ne pouvez pas attribuer à un tableau '[ 'id' => $ this-> id, 'name' => $ this-> nom]'. Vous pouvez uniquement affecter des valeurs aux variables. – sensorario

+0

Je n'attribue pas de valeurs au tableau, je détruis ** le tableau en lui attribuant des valeurs à mes propriétés de classe –

Répondre

0

Cela fonctionne pour moi:

<?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

C'est l'inverse, je suis ** en train de détruire ** un tableau, pas de construction –

+0

@ Merci ChristopherFrancisco. J'ai découvert une nouvelle façon d'utiliser les tableaux ... Merci beaucoup !! – sensorario