Maison développement back-end tutoriel php PHP 魔术方法:__isset和__unset

PHP 魔术方法:__isset和__unset

Aug 08, 2016 am 09:33 AM
echo isset private protected unset

从php5以后的版本,类就可以使用魔术方法了。php规定以两个下划线(__)开头的方法都保留为魔术方法,所以建议大家函数名最好不用__开 头,除非是为了重载已有的魔术方法。

目前php已有的魔术方法有 __construct,__destruct,__call,__get,__set,__isset,__unset,__sleep,__wakeup,__toString,__set_state 和 __clone。

本文

慢慢长寻夜,明月高空挂

__isset()    - 在对类中属性或者非类中属性使用isset()方法的时候如果没有或者非公有属性,则自动执行__isset()的方法

__unset()  - 在对类中属性或者非类中属性使用unset()方法的时候如果没有或者非公有属性,则自动执行__unset()的方法

<?php /**
     * 针对类中的魔术方法 __isset() 和 __unset() 的例子
     */

class Example {
    public $public;
    protected $protected;
    private $private;
    
    public function __construct(){
        $this->public = 'pub';
        $this->protected = 'pro';
        $this->private = 'pri';
    }
    
    public function __isset($var){
        echo '这里通过__isset()方法查看属性名为 '.$var."\n";
    }
    
    public function __unset($var){
        echo '这里通过__unset()方法要销毁属性名为 '.$var."\n";
    }
}

$exa = new Example;

echo '<pre class="brush:php;toolbar:false">';
var_dump(isset($exa->public));
echo "\n";
var_dump(isset($exa->protected));
echo "\n";
var_dump(isset($exa->private));
echo "\n";
var_dump(isset($exa->noVar));
echo "\n";
echo '<hr>';


unset($exa->public);
var_dump($exa);

echo "\n";
unset($exa->protected);
echo "\n";
unset($exa->private);
echo "\n";
unset($exa->noVar);
echo "\n";
Copier après la connexion

 结果如下:

bool(<span>true</span><span>)

这里通过__isset()方法查看属性名为 protected
bool(</span><span>false</span><span>)

这里通过__isset()方法查看属性名为 private
bool(</span><span>false</span><span>)

这里通过__isset()方法查看属性名为 noVar
bool(</span><span>false</span><span>)
------------------------------------------------------------------------------ </span><span>object</span>(Example)#<span>1</span> (<span>2</span><span>) {
  [</span><span>"</span><span>protected:protected"]=></span> <span>string</span>(<span>3</span>) <span>"</span><span>pro"</span> [<span>"</span><span>private:private"]=></span> <span>string</span>(<span>3</span>) <span>"</span><span>pri"</span> <span>}

这里通过__unset()方法要销毁属性名为 protected

这里通过__unset()方法要销毁属性名为 private

这里通过__unset()方法要销毁属性名为 noVar</span>
Copier après la connexion

 

以上就介绍了PHP 魔术方法:__isset和__unset,包括了PHP 魔术方法方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

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)

PHP détermine si une clé spécifiée existe dans un tableau PHP détermine si une clé spécifiée existe dans un tableau Mar 21, 2024 pm 09:21 PM

Cet article expliquera en détail comment PHP détermine si une clé spécifiée existe dans un tableau. L'éditeur pense que c'est très pratique, je le partage donc avec vous comme référence. J'espère que vous pourrez gagner quelque chose après avoir lu cet article. PHP détermine si une clé spécifiée existe dans un tableau : En PHP, il existe de nombreuses façons de déterminer si une clé spécifiée existe dans un tableau : 1. Utilisez la fonction isset() : isset($array["key"]) Cette fonction renvoie une valeur booléenne, vraie si la clé spécifiée existe, fausse sinon. 2. Utilisez la fonction array_key_exists() : array_key_exists("key",$arr

Cinq projets open source sélectionnés en langage Go pour vous emmener explorer le monde de la technologie Cinq projets open source sélectionnés en langage Go pour vous emmener explorer le monde de la technologie Jan 30, 2024 am 09:08 AM

À l'ère actuelle de développement technologique rapide, les langages de programmation poussent comme des champignons après la pluie. L'un des langages qui a beaucoup retenu l'attention est le langage Go, apprécié par de nombreux développeurs pour sa simplicité, son efficacité, sa sécurité de concurrence et d'autres fonctionnalités. Le langage Go est connu pour son écosystème solide avec de nombreux excellents projets open source. Cet article présentera cinq projets open source sélectionnés en langage Go et amènera les lecteurs à explorer le monde des projets open source en langage Go. KubernetesKubernetes est un moteur d'orchestration de conteneurs open source pour l'automatisation

Que signifie privé en Java Que signifie privé en Java Nov 24, 2022 pm 06:27 PM

En Java, private signifie « privé » et est un modificateur de contrôle d'accès utilisé pour modifier les classes, les propriétés et les méthodes. Les membres de la classe modifiés avec private ne peuvent être consultés et modifiés que par les méthodes de la classe elle-même, et ne peuvent être consultés et référencés par aucune autre classe (y compris les sous-classes de la classe, par conséquent, le modificateur private a le niveau de protection le plus élevé) ;

Go : les essentiels du développement linguistique : 5 recommandations de framework populaires Go : les essentiels du développement linguistique : 5 recommandations de framework populaires Mar 24, 2024 pm 01:15 PM

"Go Language Development Essentials : 5 recommandations de framework populaires" En tant que langage de programmation rapide et efficace, le langage Go est favorisé par de plus en plus de développeurs. Afin d'améliorer l'efficacité du développement et d'optimiser la structure du code, de nombreux développeurs choisissent d'utiliser des frameworks pour créer rapidement des applications. Dans le monde du langage Go, il existe de nombreux excellents frameworks parmi lesquels choisir. Cet article présentera 5 frameworks de langage Go populaires et fournira des exemples de code spécifiques pour aider les lecteurs à mieux comprendre et utiliser ces frameworks. 1.GinGin est un framework Web léger avec une rapidité

Développement Laravel : Comment implémenter la communication WebSockets à l'aide de Laravel Echo et Pusher ? Développement Laravel : Comment implémenter la communication WebSockets à l'aide de Laravel Echo et Pusher ? Jun 13, 2023 pm 05:01 PM

Laravel est un framework PHP populaire, hautement évolutif et efficace. Il fournit de nombreux outils et bibliothèques puissants qui permettent aux développeurs de créer rapidement des applications Web de haute qualité. Parmi eux, LaravelEcho et Pusher sont deux outils très importants grâce auxquels la communication WebSockets peut être facilement implémentée. Cet article détaillera comment utiliser ces deux outils dans les applications Laravel. Que sont les WebSockets ? WebSockets

Explication détaillée du rôle et de l'utilisation du mot-clé echo en PHP Explication détaillée du rôle et de l'utilisation du mot-clé echo en PHP Jun 28, 2023 pm 08:12 PM

Explication détaillée du rôle et de l'utilisation du mot-clé echo en PHP PHP est un langage de script côté serveur largement utilisé dans le développement Web. Le mot-clé echo est une méthode utilisée pour générer du contenu en PHP. Cet article présentera en détail la fonction et l'utilisation du mot-clé echo. Fonction : La fonction principale du mot-clé echo est de transmettre du contenu au navigateur. Dans le développement Web, nous devons présenter dynamiquement les données sur la page frontale. À ce stade, nous pouvons utiliser le mot-clé echo pour afficher les données sur la page. e

Quels sont les frameworks Golang les plus populaires sur le marché ? Quels sont les frameworks Golang les plus populaires sur le marché ? Jun 01, 2024 pm 08:05 PM

Les frameworks Go les plus populaires actuellement sont : Gin : framework web léger et performant, simple et facile à utiliser. Echo : un framework Web rapide et hautement personnalisable qui fournit un routage et un middleware hautes performances. GorillaMux : Un multiplexeur rapide et flexible qui offre des options de configuration de routage avancées. Fibre : un framework Web hautes performances optimisé pour les performances qui gère un nombre élevé de requêtes simultanées. Martini : un framework Web modulaire avec une conception orientée objet qui fournit un riche ensemble de fonctionnalités.

Explorez le framework du langage Go : 5 choix à ne pas manquer ! Explorez le framework du langage Go : 5 choix à ne pas manquer ! Feb 19, 2024 pm 02:29 PM

En tant que langage de programmation rapide et efficace, le langage Go a toujours été privilégié par les programmeurs. Dans l'écosystème du langage Go, les frameworks jouent un rôle essentiel en aidant les développeurs à créer des applications plus rapidement. Cet article présentera cinq frameworks de langage Go pour vous permettre de comprendre leurs caractéristiques et leur utilisation. 1. Framework Gin Le framework Gin est un framework Web léger avec des caractéristiques rapides et hautes performances. Utilisez le framework Gin pour créer rapidement des API et des applications Web RESTful. Voici un exemple de code simple :

See all articles