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

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

autoload
リリース: 2023-03-08 12:40:02
オリジナル
1941 人が閲覧しました

selfキーワードは、現在のメソッドが配置されているクラス自体ではなく、クラス内のクラスを置換するために使用されます。 sub クラス 親クラスのメソッド にアクセスするとき、self は現在のクラスとアクセスするクラスを置き換えますか? <div class="code" style="position:relative; padding:0px; margin:0px;"><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><div class="contentsignin">ログイン後にコピー</div></div>上の例に示すように、
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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート