Maison > développement back-end > tutoriel php > Comment puis-je accéder aux propriétés protégées en PHP ?

Comment puis-je accéder aux propriétés protégées en PHP ?

Patricia Arquette
Libérer: 2024-12-06 12:56:17
original
437 Les gens l'ont consulté

How Can I Access Protected Properties in PHP?

Récupération de propriétés protégées en PHP

Lorsque vous travaillez avec des objets, vous pouvez rencontrer des situations dans lesquelles vous devez accéder ou modifier des propriétés protégées. Bien que cet accès soit généralement limité aux sous-classes ou à la classe de définition, il est possible de récupérer ces propriétés à l'aide de certaines techniques.

Accès aux propriétés protégées en PHP 5.2

En PHP 5.2 , vous pouvez utiliser une combinaison de réflexion de classe et de manipulation de propriétés pour récupérer les propriétés protégées. Voici comment procéder :

1. Créer une fonction de réflexion :

function accessProtected($obj, $prop) {
  $reflection = new ReflectionClass($obj);
  $property = $reflection->getProperty($prop);
  $property->setAccessible(true);
}
Copier après la connexion

2. Appelez la fonction de réflexion :

$obj = new Fields_Form_Element_Location();
$value = accessProtected($obj, '_value');
Copier après la connexion

En appelant setAccessible(true), vous remplacez les restrictions d'accessibilité par défaut et récupérez la propriété protégée.

Remarques supplémentaires :

  • Assurez-vous de remplacer $prop dans la fonction accessProtected() par la propriété protégée réelle name.
  • Utilisez cette technique avec prudence, car la modification des propriétés protégées peut entraîner un comportement imprévisible.
  • Envisagez d'utiliser des getters et des setters dans votre classe pour fournir un accès contrôlé aux propriétés protégées.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal