Bonjour à tous,
J'essaye de faire un exercice en OO et je bloque sur ce que me dit le livre.
J'ai créé une classe de la sorte:
Code PHP : 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
46
47
48
49
50
51
52
53
54
55
56
57 class Field { public $accept; public $accesskey; public $align; public $alt; public $border; public $checked; public $dir; public $disabled; public $height; public $hspace; public $lang; public $maxlength; public $onblur; public $onchange; public $ondblclick; public $onfocus; public $onkeydown; public $onkeypress; public $onkeyup; public $onmousedown; public $onmousemove; public $onmouseout; public $onmouseover; public $onmouseup; public $onselect; public $readonly; public $size; public $src; public $style; public $tabindex; public $title; public $usemap; public $width; public $field; public $attribut; function __construct($id,$name,$class,$value){ $this->field = '<input id="'.$id.'" name="'.$name.'" class="'.$class.'" value="'.$value.'" />'; } function __get($name){ return $this-->$name; } function __set($name, $value){ $this->$name=$value; } function Display(){ echo $this->field; } }
Puis je l'instancie de cette manière:
J'affiche le résultat ainsi:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part $firstname = new Field('id','firstname','class','');
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part $firstname->Display();
Jusqu'à la, tout va bien.
Maintenant j'aimerais faire usage de la function __set() and __get().
Donc pour donner une valeur àe fais ainsi:$accept;
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $firstname = new Field('id','firstname','class',''); $firtsname->$accept = 5; //ca aucun sans de mettre 5, mais c'est un exercice... $firstname->Display();
Mais ma page me retourne ce message d'erreur:
Je ne comprend pas pourquoi car $accept est public et dans mon livre, il me dit que la fonction __set($name,$value), est automatiquement appeléeNotice: Undefined variable: accept in /Applications/MAMP/htdocs/formulaire/index.php on line 24
Fatal error: Cannot access empty property in /Applications/MAMP/htdocs/formulaire/index.php on line 24
Pouvez vous m'éclairessir?
Merci
Partager