note 129445 added to language.oop5.decon

From: Date: Mon, 29 Apr 2024 12:38:47 +0000
Subject: note 129445 added to language.oop5.decon
Groups: php.notes 
Request: Send a blank email to php-notes+get-221310@lists.php.net to get a copy of this message
Php n'admet pas les constructeurs multiples où un constructeur vide apparaît. Une solution (non-sécurisé) consisterait à faire appel à la fonction func_num_args() qui permet de connaître le nombre d'arguments retournés, puis avec un switch-case, de gérer les états en fonction des arguments. Deux points importants cependant avec cette méthode : - Il faut impérativement filtrer ce qui rentre (ne pas oublier les entrées utilisateur). - On peut créer plusieurs cas de figures et se perdre dans son code. Exemple : <?php class Voiture { private int $id; private string $marque; function __construct(){ $args_num = func_num_args(); switch ($args_num) { case 0: break; case 2: $args_list = func_get_args(); $this->id=$args_list[0]; $this->marque=$args_list[1]; break; } } public function getId() { return $this->id; } public function getMarque() { return $this->marque; } public function setId($i) { $this->id = $i; } public function setMarque($m) { $this->marque = $m; } } ?> ---- Server IP: 45.112.84.4 Probable Submitter: 80.90.13.131 (proxied: 195.83.235.234) ---- Manual Page -- https://php.net/manual/en/language.oop5.decon.php Edit -- https://main.php.net/note/edit/129445 Del: integrated -- https://main.php.net/note/delete/129445/integrated Del: useless -- https://main.php.net/note/delete/129445/useless Del: bad code -- https://main.php.net/note/delete/129445/bad+code Del: spam -- https://main.php.net/note/delete/129445/spam Del: non-english -- https://main.php.net/note/delete/129445/non-english Del: in docs -- https://main.php.net/note/delete/129445/in+docs Del: other reasons-- https://main.php.net/note/delete/129445 Reject -- https://main.php.net/note/reject/129445 Search -- https://main.php.net/manage/user-notes.php

« previous php.notes (#221310) next »