éviter le message 'Notice: Undefined offset' durant création dynamique de tableau

Eléphanteau du PHP | 40 Messages

11 nov. 2019, 11:28

Bonjour

Je ne comprends pas pourquoi j'ai une notice dans la première création de $this->_data et pas dans la deuxième.

Code : Tout sélectionner

class stats ... function process() { $this->_data = array(); $x = 232; $y = 12; $this->_data[$x][$y] = 'ok'; [b]//Pas de notice[/b] $this->_data = $this->q_comments = $this->g_comments = array(); foreach ($this->reponses AS $question){ switch( $question->qtid ){ ... case 1: //'question': if ($question->reponse > 0){ $this->_data[$question->question_id][$question->reponse]++; [b]//Notice: Undefined offset: 232[/b] !!! } ...

Eléphant du PHP | 336 Messages

11 nov. 2019, 15:58

Salut,

Dans le premier tu fais une affectation donc tu vas créer l'index, dans le deuxième c'est différent tu incrémentes c'est à dire tu vas prendre la valeur qui existe (ici aucune pour cette indice d'ou l'erreur) et lui ajouter 1. Pour t'en convaincre fait un var_dump de $this->_data[$question->question_id][$question->reponse]

Eléphanteau du PHP | 40 Messages

11 nov. 2019, 20:09

Merci