Maison > développement back-end > Problème PHP > PHP peut-il avoir des méthodes statiques privées ?

PHP peut-il avoir des méthodes statiques privées ?

青灯夜游
Libérer: 2023-03-10 10:02:01
original
2286 Les gens l'ont consulté

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.

PHP peut-il avoir des méthodes statiques privées ?

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";
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal