ホームページ  >  記事  >  バックエンド開発  >  self は現在のクラスを表しますか、それとも継承内のアクセス クラスを表しますか?

self は現在のクラスを表しますか、それとも継承内のアクセス クラスを表しますか?

autoload
autoloadオリジナル
2021-03-04 10:18:021878ブラウズ

selfキーワードは、現在のメソッドが配置されているクラス自体ではなく、クラス内のクラスを置換するために使用されます。 sub クラス 親クラスのメソッド にアクセスするとき、self は現在のクラスとアクセスするクラスを置き換えますか? <pre class="brush:php;toolbar:false">&lt;?php class Fu{ public static $type=&quot;Fu&quot;; public static function getType(){ echo self::$type.&quot; self&lt;br&gt;&quot;; } } class Zi extends Fu{ public static $type=&quot;Zi&quot;; } Fu::gettype();//Fu self Zi::gettype();//Fu self ?&gt;</pre>上の例に示すように、
self

は現在のクラス、つまり、継承されたサブクラスではなく、そのクラスが配置されている親クラスを表します。

メソッドにアクセスするときに訪問者が属するクラスを動的に選択する場合は、クラス メンバーにアクセスするために self

ではなく

静的キー を使用する必要があります。

<?php
   class Fu{
       public static $type="Fu";
       public static function getType(){
           echo self::$type." self<br>";//类的静态绑定
           echo static::$type." static<br>";//类的静态延迟绑定
       }
   }

   class Zi extends Fu{
    public static $type="Zi";
    
   }

   Fu::gettype();//Fu self Fu self
   Zi::gettype();//Fu self Zi static
?>
推奨:

p

hp チュートリアル、php ビデオ チュートリアル

以上がself は現在のクラスを表しますか、それとも継承内のアクセス クラスを表しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。