Creating default object from empty value

Eléphanteau du PHP | 40 Messages

09 mars 2016, 11:31

Bonjour,

Depuis php-5.4 ce message d'erreur est obtenu avec le code suivant, sur la ligne "$this->_data->type = 1;":

Code : Tout sélectionner

class example { var $_id = null; var $_data = null; function _emptyObjectInitExample(){ $this->_id = 0; $this->_data->type = 1; $this->_data->owner = 62; } }
On évite l'erreur en transformatn ainsi:

Code : Tout sélectionner

class example { var $_id = null; var $_data = null; function _emptyObjectInitExample(){ $this->_data = new stdClass(); $this->_id = 0; $this->_data->type = 1; $this->_data->owner = 62; } }
Mais si on a plusieurs méthodes initialisant l'objet interne _data, il est fastidieux et peu élégant d'ajouter une déclaration "$this->_data = new stdClass();" à chaque fois. J'aurais aimé qqchose comme:

Code : Tout sélectionner

var $_data = new stdClass();
Mais ça ne fonctionne pas. Quelle est la bonne façon de faire ?

Eléphanteau du PHP | 40 Messages

15 mars 2016, 16:55

Pas l'air très réactif ce forum.

Une autre solution peut-être définir l'obget dans la construction de la classe ?:

Code : Tout sélectionner

function __construct(){ $this->_data = new stdClass(); }