[POO] constructeur d'une class
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 :
Code:
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;
}
} |
Bon, ça reste du bidouillage, mais au moins pour une 1ère tentative, ça marche :D
Je la déclare donc dans ma page appelante :
Code:
1 2 3
| $news = new formulaire('news');
echo $news -> __construct('news');
echo $news -> input_text('titre', 'Titre de la news :'); |
Le truc qui me tourmente, c'est le echo $news -> __construct('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 :
Code:
1 2 3
| $news = new formulaire('news');
$news .= $news -> input_text('titre', 'Titre de la news :');
echo $news; |
Php me signale que la ressource est un objet.
Merci !