Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Zaubermethoden: __isset und __unset

PHP-Zaubermethoden: __isset und __unset

WBOY
Freigeben: 2016-08-08 09:33:08
Original
1121 Leute haben es durchsucht

Ab PHP5 und späteren Versionen können Klassen magische Methoden verwenden. PHP legt fest, dass Methoden, die mit zwei Unterstrichen (__) beginnen, als magische Methoden reserviert sind. Daher wird empfohlen, dass Funktionsnamen nicht mit __ beginnen, es sei denn, dies dient dazu, vorhandene magische Methoden zu überlasten.

Zu den vorhandenen magischen Methoden in PHP gehören __construct, __destruct, __call, __get, __set, __isset, __unset, __sleep, __wakeup, __toString, __set_state und __clone.

Dieser Artikel

Langsam auf der Suche nach der Nacht, hängt der helle Mond hoch am Himmel

__isset() – Wenn die Methode isset() für ein Klassenattribut oder ein Nicht-Klassen-Attribut verwendet wird und kein oder kein öffentliches Attribut vorhanden ist, wird die Methode __isset() automatisch ausgeführt.

__unset()  - Bei Verwendung der unset()-Methode für ein Klassenattribut oder ein Nicht-Klassen-Attribut wird die __unset()-Methode automatisch ausgeführt, wenn kein oder kein öffentliches Attribut vorhanden ist

<?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";
Nach dem Login kopieren

Das Ergebnis ist wie folgt:

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>
Nach dem Login kopieren

Das Obige stellt die PHP-Magic-Methoden vor: __isset und __unset, einschließlich des Inhalts der PHP-Magic-Methoden. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage