Maison >développement back-end >Problème PHP >PHP peut-il avoir des méthodes statiques privées ?
php peut utiliser des méthodes statiques privées. Les méthodes privées statiques fournissent un moyen de masquer le code statique de l'extérieur de la classe ; cela peut être utile si plusieurs méthodes différentes (statiques ou non statiques) doivent l'utiliser, c'est-à-dire la réutilisation du code.
L'environnement d'exploitation de ce tutoriel : système Windows7, version PHP7.1, ordinateur DELL G3
Je comprends que statique signifie qu'un objet n'a pas besoin de l'être. L'instanciation rend cette propriété/méthode disponible. Je comprends également que cela s'applique aux propriétés et méthodes privées ainsi qu'aux méthodes publiques. Ce que je veux savoir, c'est de quelles fonctions privées statiques peuvent vous bénéficier. Par exemple :
class Beer { static private $beertype = "IPA"; private function getBeerType() { return self::$beertype; } static public function BeerInfo() { return self::getBeerType(); } } print Beer::BeerInfo() . "\n";
Tant que getBeerType() est appelée à partir de la méthode publique statique, la méthode privée s'exécutera correctement sans instancier l'objet. Si une méthode publique statique a accès à toutes les méthodes privées (statiques et non statiques), quel est l'avantage de déclarer une méthode static privée ?
Avec le rapport d'erreurs strict activé, je reçois un avertissement indiquant que je dois rendre getBeerType() statique, même si cela me permet toujours d'exécuter le code. J'ai fait quelques recherches et il semble que d'autres langages (Java) vous obligeront à déclarer une méthode privée comme statique lorsqu'une méthode publique statique est appelée. On dirait que PHP vous permet de vous en sortir. Existe-t-il un moyen de le forcer à générer une erreur et à ne pas s'exécuter ?
Les méthodes privées statiques fournissent un moyen de masquer le code statique de l'extérieur de la classe. Cela peut être utile si plusieurs méthodes différentes (statiques ou non statiques) doivent l'utiliser, c'est-à-dire la réutilisation de code.
Les méthodes statiques et les variables statiques (parfois appelées méthodes de classe et variables de classe) sont un moyen de placer du code et des données dans un espace de noms. Vous pouvez également considérer les variables de classe comme des variables attachées à la classe elle-même, dont (par définition) il n'y en a qu'une, par opposition aux instances de la classe, dont il peut y en avoir zéro, une ou plusieurs. Les méthodes de classe et les variables de classe peuvent être utilisées pour travailler avec des propriétés qui non seulement restent les mêmes dans toutes les instances, mais qui sont en réalité les mêmes. Un exemple de variable de classe
est un gestionnaire de base de données dans un objet d'entité ORM. Toutes les instances sont leurs propres objets, mais elles ont toutes besoin d'accéder au même gestionnaire de base de données pour se charger et s'enregistrer.
Le privé contre le public est une qualité totalement distincte, je doute que vous trébuchiez sur quelque chose. Les méthodes privées ne peuvent pas être appelées et les variables privées ne sont pas accessibles à partir de code extérieur à la classe. Les méthodes privées sont généralement utilisées pour implémenter une logique « interne » sur un objet qui n'est pas accessible en dehors de l'objet. Cette restriction peut être obtenue via des méthodes d'instance et des méthodes de classe.
Un exemple de méthode de classe privée pourrait être une méthode d'usine. Il peut y avoir trois appels d'usine pour créer des objets qui peuvent différer en termes d'arguments fournis. Mais la plupart des opérations sont les mêmes. Il entre donc dans la méthode statique privée appelée par la méthode de fabrique non privée.
Apprentissage recommandé : "Tutoriel vidéo PHP"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!