class me {
private $name;
public function __construct($name) { $this->name = $name; }
public function work() {
return "You are working as ". $this->name;
}
public static function work() {
return "You are working anonymously";
}
}
$new = new me();
me::work();
Erreur fatale: ne peut pas me redéclarer :: travail()redéclaration de l'instance et la fonction statique
la question est, pourquoi php ne permet pas redéclaration comme ça. Y a-t-il une solution de contournement?
Oui, il existe une solution de contournement: utilisez un autre nom. ;-) PHP n'est pas en C++, les méthodes sont uniques par leurs noms, et non par leur combinaison nom/arguments/visibilité. Même alors, vous ne pouvez pas surcharger une méthode d'objet à une méthode statique en C++ non plus. – netcoder
Est-ce que n'importe quelle langue le permet? Je sais que C# ne fonctionne pas - http://stackoverflow.com/questions/160118/static-and-instance-methods-with-the-same-name – Phil
mais il est bon d'utiliser le même nom pour faire la même chose n'est-ce pas? –