Statiques et Non Statiques Appeler en PHP
ok, j'ai ce code, que je suis étudiant en
class scope{
function printme(){
return "hello";
}
public static function printme(){
return "hello";
}
}
$s = new scope();
echo $s->printme(); //non-static call
echo "<br>";
echo scope::printme(); //static call
Maintenant, ce n'est pas vraiment le code de mon projet, mais ce sont les choses que je veux faire
- Je veux créer une classe contiendra statiques et non statiques fonctions.
- Je veux une fonction pour être disponible à la fois statiques et non statiques appels.
Non statique de la fonction de beaucoup d'opérations sur elle, j'ai aussi besoin de l'appeler comme une fonction statique de sorte que je n'auront pas besoin d'instancier la classe. Est-ce possible? ou j'ai vraiment besoin de réécrire la fonction à une autre fonction ou une classe?
NOTE: dites-moi si je fais une mauvaise programmation déjà.
OriginalL'auteur Mp de la Vega | 2012-06-06
Vous devez vous connecter pour publier un commentaire.
Voici la règle:
Une méthode statique peut être utilisé aussi bien en statique méthode et non méthode statique.
Non méthode statique ne peut être utilisé dans une non-méthode statique.
Php permettait de le faire ne signifie pas que vous devriez le faire. self:: fonctionne parce que votre non méthode statique ne pas utiliser$, si vous utiliser $this à l'intérieur, il ne devrait pas être travail.
Si vous appelez non méthode statique de la méthode statique, si la non-méthode statique en utilisant $this,
Fatal error: Uncaught Error: Using $this when not in object context
va se passer, si le non-statique méthode ne prend pas en utilisant $this,PHP Deprecated: Non-static method test::foo() should not be called statically
va se passer.OriginalL'auteur xdazz
Si l'instance de votre classe, il est rarement nécessaire, vous pouvez avoir la méthode statique créer une instance, d'appel à la non-méthode statique et retourner la valeur.
Rappelez-vous qu'une méthode statique est vraiment juste une fonction globale avec la réduction de la portée. Ils sont utiles, mais ne doit pas être créé sans une bonne raison.
OriginalL'auteur walrii
Si vous en avez besoin statique, puis de la rendre statique. Si vous n'en avez pas besoin, alors le garder à la façon dont il est. Il est possible de l'intérieur non statique de la fonction à appeler fonction statique.
Ant dans l'autre sens.
Quand vous devez le faire ou si vous le faites à tous est une autre question. L'utilisation la plus courante de ce dernier est probablement le pattern Singleton.
OriginalL'auteur Gajus