Bonjour,
J'ai une classe avec comme propriété un tableau déclaré par : var $TableauOperations = [];
L'unique instance de cette classe est stockée comme variable de session.
Une méthode de cette classe remplit le tableau en question (par paquets) ; jusque là tout fonctionne bien.
Pour pouvoir utiliser cette méthode plusieurs fois sans écraser les éléments précédents, je souhaite utiliser la fonction count() afin de ne pas repartir de l'indice 0 mais d'un indice correspondant au nombre d'enregistrements précédents. Voici le code :
Mais quand j'arrive à la ligne utilisant le "count" je prends l'erreur suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Class ExosFeuille { var $NomFeuille ; // sera affiché pour re-choisir une feuille existante var $TableauOperations = []; public function __construct(string $NFeuille) { $this->NomFeuille = $NFeuille; } // fin constructeur public function AjouteOperations($TypeOp, int $NbNb, int $TailleNbs, $NbOccurences) { $Compte = count($TableauOperations); for ($i = 0 ; $i < $NbOccurences ; $i++) { $NOp = new ExosOperation($TypeOp, $NbNb, $TailleNbs); $NOp->Init(); $this->TableauOperations[$i+$Compte] = $NOp; } }
Je ne comprends pas le warning, car, dans la version précédente, j'avais déjà cette ligne de code qui utilise le même tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Warning: Undefined variable $TableauOperations in C:\xampp\htdocs\ExosClasses.inc.php on line 142 Fatal error: Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in C:\xampp\htdocs\ExosClasses.inc.php:142 Stack trace: #0 C:\xampp\htdocs\ModificationFeuille.php(16): ExosFeuille->AjouteOperations(0, 2, 2, '4') #1 {main} thrown in C:\xampp\htdocs\ExosClasses.inc.php on line 142
Je pense que l'erreur ensuite provient de la même cause que celle du warning.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $this->TableauOperations[$i] = $NOp;
Help![]()
Partager