Bonjour,
J'essaie de m'initier à la poo, mais il y a un truc que je ne comprends pas.
Voici le début d'une class que j'essaie de faire :
Bon, ça reste du bidouillage, mais au moins pour une 1ère tentative, ça marche
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 class formulaire { function __construct($id, $action = true, $method = 'post', $class = false) { $class = ($class == isset($class)) ? 'class="' . $class . '"' : ''; $action = ($action === true) ? 'action="' . $_SERVER['REQUEST_URI'] . '"' : 'action="' . $_SERVER['PHP_SELF'] . '"'; $this -> form = "\n" . '<form id="' . $id . '" method="' . $method . '" ' . $class . '">'; return $this -> form; } function input_text( $name, $texte, $class = null, $value = true, $maxlength = null ) { $value = ($value === true) ? ' value="' . $_POST[$name] . '"' : ''; $class = ($class !== null) ? ' class="' . $class . '"' : ''; $maxlength = ($maxlength !== null) ? ' maxlength="' . $maxlength . '"' : ''; $this -> text = "\n\t" . '<p><label for="' . $name . '">' . $texte . '</label>'; $this -> text .= "\n\t" . '<input type="text" name="' . $name . '" id="' . $name . '"' . $class . $value . $maxlength . ' /></p>'; return $this -> text; } }
Je la déclare donc dans ma page appelante :
Le truc qui me tourmente, c'est le echo $news -> __construct('news');
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $news = new formulaire('news'); echo $news -> __construct('news'); echo $news -> input_text('titre', 'Titre de la news :');
Pourquoi suis-je obligé de réutiliser cette fonction, alors qu'elle est déjà déclarée dans $news = new formulaire('news'); ?
Car si je fais ça :
Php me signale que la ressource est un objet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $news = new formulaire('news'); $news .= $news -> input_text('titre', 'Titre de la news :'); echo $news;
Merci !
Partager