Bonjour,
J'ai une classe OptListSelect qui permet de créer une balise <select> avec ses attributs et une deuxième classe OptListOption qui permet de créer une balise <option> avec ses attributs également.
Lorsque j'essaie de faire fonctionner les deux classes ensemble, j'ai une erreur:Je ne comprends pas la partie en rouge puisque je veux utiliser une instance de OptListOption et c'est ce que j'ai écrit ligne 22. Les numéros de lignes correspondent aux extraits de code donnés ici. Supposant qu'il s'agit d'un mauvais tour du cache, j'ai fait plusieurs ctrl+F5 et j'ai fermé et redémarrer le navigateur mais l'erreur persiste. Je me demande alors, si j'ai un problème dans mon code mais je ne vois pas.Fatal error: Uncaught TypeError: Argument 1 passed to moimp\OptListSelect\OptListSelect::addOption() must be an instance of moimp\OptListSelect\optListOption, instance of moimp\OptListOption\OptListOption given, called in C:\wamp64\www\MP_tools\Version.1.2\classes\test.php on line 9 and defined in C:\wamp64\www\MP_tools\Version.1.2\classes\OptListSelect.php:22
Code OptListSelect:Code OptListOption:
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 <?php namespace moimp\OptListSelect; use Exception; class OptListSelect { private $options = []; private $groups = []; // inutilisé pour l'instant private $name = ''; private $attributes = []; // ... public function setName(string $value) { $this->name = $value; } // ... public function addOption(optListOption $option) { $this->options[] = $option; } // ... public function __toString() { // code } public function __construct(string $name, array $attributes = []) { // code } }Code test d'utilisation:
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 <?php namespace moimp\OptListOption; use Exception; class OptListOption { private $value = ''; private $text; private $selected = false; // ... public function setValue(string $value) { $this->value = $value; } // ... public function setText(string $value) { $this->text = $value; } // ... public function setSelected($value) { $this->selected = (bool)$value; } public function __toString() { return sprintf( '<option%s%s>%s</option>', is_null($this->value) ? '' : sprintf(' value="%s"', $this->value), $this->selected ? ' selected="selected"' : '', $this->text ); } public function __construct($value = '', $text = '', $selected = false) { $this->setValue($value); $this->setText($text); $this->setSelected($selected); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php require('OptListSelect.php'); require('OptListOption.php'); use moimp\OptListSelect\OptListSelect; use moimp\OptListOption\OptListOption; $x = new OptListSelect('xx', ['id'=>22]); $x->addOption(new optListOption('')); $x->addOption(new optListOption('M')); $x->addOption(new optListOption('F'));







Répondre avec citation
Partager