Heim  >  Artikel  >  Backend-Entwicklung  >  PHPstatic verstehen

PHPstatic verstehen

WBOY
WBOYOriginal
2016-08-08 09:26:30940Durchsuche

Ich habe mir kürzlich den Quellcode von Yii2.0 angesehen und festgestellt, dass er viele neue static()- und static::-Anweisungen enthält, also habe ich mir das notiert
- Schauen Sie sich zunächst den folgenden Code an

<code><span><span>class</span><span>A</span> {</span><span>public</span><span>static</span><span><span>function</span><span>get_self</span><span>()</span> {</span><span>return</span><span>new</span><span>self</span>();
    }

    <span>public</span><span>static</span><span><span>function</span><span>get_static</span><span>()</span> {</span><span>return</span><span>new</span><span>static</span>();
    }
}
<span><span>class</span><span>B</span><span>extends</span><span>A</span> {</span>}
<span>echo</span> get_class(B::get_self()); <span>// A</span><span>echo</span> get_class(B::get_static()); <span>// B</span><span>echo</span> get_class(A::get_static()); <span>// A</span></code>

Aus dem Obigen können wir ersehen, dass new static() die aufrufende Klasse darstellt und new self() die deklarierte Klasse

<code><span><span>class</span><span>A</span> {</span><span>const</span> TEST = <span>'testa'</span>;

    <span>public</span><span>static</span><span><span>function</span><span>test_static</span><span>()</span>{</span><span>echo</span><span>static</span>::TEST;
    }

    <span>public</span><span>static</span><span><span>function</span><span>test_self</span><span>()</span>
    {</span><span>echo</span><span>self</span>::TEST;
    }
}
<span><span>class</span><span>B</span><span>extends</span><span>A</span> {</span><span>const</span> TEST = <span>'testb'</span>;
}
<span>echo</span> B::test_static(); <span>//testb</span><span>echo</span> B::test_self(); <span>//testa</span></code>

durch darstellt Die obige Beobachtung kann zu dem Schluss führen, dass static mit der aufgerufenen Klasse zusammenhängt, während self mit der deklarierten Klasse (der Klasse, in der sich der Self-Code befindet) zusammenhängt.

Das Obige hat das Verständnis von PHPstatic und dessen Aspekte vermittelt. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.

Stellungnahme:
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