Maison développement back-end tutoriel php Explication détaillée de l'instance de la méthode magique __get() (tutoriel php avancé orienté objet 2)

Explication détaillée de l'instance de la méthode magique __get() (tutoriel php avancé orienté objet 2)

Apr 18, 2017 pm 06:02 PM

Quand vous voyez ce nom, cela vous donne une sensation très haut de gamme. Oui, les méthodes magiques sont effectivement avancées.

Alors, c'est quoi une méthode magique ?

Les méthodes commençant par deux traits de soulignement en PHP sont appelées "Méthodes magiques". Par exemple, les __construct(), __destruct(), __clone() mentionnés précédemment et __call(),,__get(), __set(),__sleep(), __wakeup(), __toString(), __autoload(), etc. , Ce sont toutes des méthodes magiques.

Si vous souhaitez que PHP appelle ces méthodes magiques, vous devez d'abord les définir dans la classe, sinon PHP n'exécutera pas les méthodes magiques non créées.

Remarque :

La méthode magique est définie en PHP, vous ne pouvez donc pas la créer vous-même. Vous ne pouvez utiliser que ce qui existe déjà en PHP, sinon une erreur sera signalée.

Nous allons maintenant présenter les méthodes magiques couramment utilisées parmi de nombreuses méthodes magiques.

__get() fonctionne comme :

__get() : Lors de la lecture de la valeur d'un attribut inaccessible (privé, protégé, n'existe pas), php exécutera __get () méthode.

Jetons un coup d'œil à un exemple sur __get() :

<?php
class Monkey{
public $name;
protected $food;
function __construct($name,$food){
$this->name = $name;
$this->food = $food;
}
function sayHello(){
echo &#39;<br/>我是&#39; . $this->name . &#39;我喜欢吃&#39; . $this->food;
}
}
$monkey = new Monkey(&#39;猴子&#39; , &#39;桃子&#39;)
$monkey -> sayHello();
Copier après la connexion

L'exemple ci-dessus est la connaissance des classes dont nous avons parlé précédemment, la création de classes, la création de méthodes et l'instanciation . Dernière visite.

Maintenant, nous proposons une nouvelle exigence, c'est-à-dire que nous devons appeler $food directement à l'extérieur de la classe. Alors certains diront que $food est un attribut protégé et ne peut pas être appelé directement. Mais la demande est de faire cela, que devons-nous faire ? C'est à ce moment-là que notre méthode magique __get() est utilisée. Regardez le code suivant :

<?php
class Monkey{
public $name;
protected $food;
function __construct($name,$food){
$this->name = $name;
$this->food = $food;
}
function sayHello(){
echo &#39;<br/>我是&#39; . $this->name . &#39;我喜欢吃&#39; . $this->food;
}
//魔术方法
function __get($pro_name){
//先判断$pro_name是否存在
if(isset($this -> $pro_name)){
return $this -> $pro_name;
}else{
echo &#39;属性值不存在&#39;;
}
}
}
$monkey = new Monkey(&#39;猴子&#39; , &#39;桃子&#39;)
$monkey -> sayHello();
echo &#39;猴子喜欢吃&#39; . $monkey -> food;
Copier après la connexion

Avant d'utiliser la méthode magique, nous devons d'abord déterminer si $pro_name existe. Parce que dans l'exemple ci-dessus, $pro_name appelle food, et food existe, donc on peut l'appeler. Mais si la nourriture est remplacée par quelque chose d'autre qui n'existe pas, comme a, alors la méthode __get() sera appelée, mais une erreur sera signalée indiquant que a n'existe pas. Nous devons donc d’abord porter un jugement.

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment automatiser les tâches à l'aide de PowerShell Comment automatiser les tâches à l'aide de PowerShell Feb 20, 2024 pm 01:51 PM

Si vous êtes un administrateur informatique ou un expert en technologie, vous devez être conscient de l'importance de l'automatisation. Surtout pour les utilisateurs de Windows, Microsoft PowerShell est l'un des meilleurs outils d'automatisation. Microsoft propose une variété d'outils pour vos besoins d'automatisation, sans qu'il soit nécessaire d'installer des applications tierces. Ce guide détaillera comment exploiter PowerShell pour automatiser les tâches. Qu'est-ce qu'un script PowerShell ? Si vous avez de l'expérience avec PowerShell, vous avez peut-être utilisé des commandes pour configurer votre système d'exploitation. Un script est une collection de ces commandes dans un fichier .ps1. Les fichiers .ps1 contiennent des scripts exécutés par PowerShell, tels que Get-Help de base

Quelle est l'importance de l'annotation @JsonIdentityInfo utilisant Jackson en Java ? Quelle est l'importance de l'annotation @JsonIdentityInfo utilisant Jackson en Java ? Sep 23, 2023 am 09:37 AM

L'annotation @JsonIdentityInfo est utilisée lorsqu'un objet a une relation parent-enfant dans la bibliothèque Jackson. L'annotation @JsonIdentityInfo est utilisée pour indiquer l'identité de l'objet lors de la sérialisation et de la désérialisation. ObjectIdGenerators.PropertyGenerator est une classe d'espace réservé abstraite utilisée pour représenter les situations dans lesquelles l'identifiant d'objet à utiliser provient d'une propriété POJO. Syntaxe@Target(value={ANNOTATION_TYPE,TYPE,FIELD,METHOD,PARAMETER})@Retention(value=RUNTIME)public

Explorez la programmation orientée objet dans Go Explorez la programmation orientée objet dans Go Apr 04, 2024 am 10:39 AM

Le langage Go prend en charge la programmation orientée objet via la définition de type et l'association de méthodes. Il ne prend pas en charge l'héritage traditionnel, mais est mis en œuvre par composition. Les interfaces assurent la cohérence entre les types et permettent de définir des méthodes abstraites. Des cas pratiques montrent comment utiliser la POO pour gérer les informations client, notamment la création, l'obtention, la mise à jour et la suppression d'opérations client.

Analyse du modèle Flyweight dans la programmation orientée objet PHP Analyse du modèle Flyweight dans la programmation orientée objet PHP Aug 14, 2023 pm 05:25 PM

Analyse du modèle Flyweight dans la programmation orientée objet PHP Dans la programmation orientée objet, le modèle de conception est une méthode de conception logicielle couramment utilisée, qui peut améliorer la lisibilité, la maintenabilité et l'évolutivité du code. Le modèle Flyweight est l’un des modèles de conception qui réduit la surcharge de mémoire en partageant des objets. Cet article explique comment utiliser le mode poids mouche en PHP pour améliorer les performances du programme. Qu’est-ce que le mode poids mouche ? Le modèle de poids mouche est un modèle de conception structurelle dont le but est de partager le même objet entre différents objets.

Fonctionnalités avancées PHP : meilleures pratiques en matière de programmation orientée objet Fonctionnalités avancées PHP : meilleures pratiques en matière de programmation orientée objet Jun 05, 2024 pm 09:39 PM

Les meilleures pratiques de POO en PHP incluent les conventions de dénomination, les interfaces et les classes abstraites, l'héritage et le polymorphisme, ainsi que l'injection de dépendances. Les cas pratiques incluent : l'utilisation du mode entrepôt pour gérer les données et l'utilisation du mode stratégie pour mettre en œuvre le tri.

Analyse des fonctionnalités orientées objet du langage Go Analyse des fonctionnalités orientées objet du langage Go Apr 04, 2024 am 11:18 AM

Le langage Go prend en charge la programmation orientée objet, définissant des objets via des structures, définissant des méthodes à l'aide de récepteurs de pointeurs et implémentant le polymorphisme via des interfaces. Les fonctionnalités orientées objet assurent la réutilisation, la maintenabilité et l'encapsulation du code dans le langage Go, mais il existe également des limitations telles que le manque de concepts traditionnels de classes et d'héritage et de conversions de signatures de méthodes.

Existe-t-il des fonctionnalités orientées objet de type classe dans Golang ? Existe-t-il des fonctionnalités orientées objet de type classe dans Golang ? Mar 19, 2024 pm 02:51 PM

Il n'y a pas de concept de classe au sens traditionnel dans Golang (langage Go), mais il fournit un type de données appelé structure, à travers lequel des fonctionnalités orientées objet similaires aux classes peuvent être obtenues. Dans cet article, nous expliquerons comment utiliser les structures pour implémenter des fonctionnalités orientées objet et fournirons des exemples de code concrets. Définition et utilisation des structures Examinons d'abord la définition et l'utilisation des structures. Dans Golang, les structures peuvent être définies via le mot-clé type, puis utilisées si nécessaire. Les structures peuvent contenir des attributs

Exemple de commande Curl Get Exemple de commande Curl Get Mar 20, 2024 pm 06:56 PM

Sous Linux, le client URL ou Curl est un utilitaire de ligne de commande populaire qui vous permet de transférer des données sur le réseau à l'aide de divers protocoles tels que HTTPS, HTTP, FTP, etc. Il vous permet d'envoyer et de recevoir des données en utilisant ses méthodes get, post et request. Parmi eux, vous devez utiliser fréquemment la méthode « get ». Par conséquent, il devient crucial d’apprendre diverses méthodes et différentes options que vous pouvez utiliser pour augmenter votre productivité. "Effectuer une opération curl est aussi simple que de saisir quelques commandes simples. Bien que cela semble simple, de nombreux utilisateurs ne réalisent pas pleinement son potentiel. Par conséquent, ce petit guide fournit des informations sur la façon d'effectuer des opérations curl sur les systèmes Linux. Exemple utilisant " curlget" commande "Curl.

See all articles