php類の中でstaticとselfの使用区別は簡単に分析します。

1779 ワード

selfを使用します。CLASS_u現在のクラスの静的な参照は、現在の方法のクラスを定義することに依存します。
staticを使用します。現在の方法のクラスを定義するのではなく、実際の運転時に計算されます。静的方法の呼び出しにも使用できるので、「静的バインディング」とも呼ばれることができる。
静的バインディングはPHP 5.3.0で、静的呼び出しのクラスを継承範囲内で参照するための機能を追加しました。
php類ではstaticとselfの違い、php類の定義では常にselfとstaticが見られますが、運行時にはよく結果に違いがないことが分かります。でも違いがないのは間違いないです。なぜ二つがあるのですか?
 一、両者の違い
staticは延長バインディングを採用しています。
だから、staticは父か子かを正確に知ることができます。
例えば、staticはスマートな子供で、彼の家族の親戚は彼が正確に知ることができるということです。
selfは少し不器用な子供で、彼はあなたの両親だけを知っています。
二、コードは違っています。
下記のコードから分かります。
selfは彼のクラスを定義します。つまり彼は自分の両親だけを知っています。
staticは彼を呼び出したクラス、つまり彼は自分の親戚を見分けることができます。

<?php
class parents
{
    protected static $name = '     ';
 
    public static function who_self()
    {
        return self::$name;
    }
 
    public static function who_static()
    {
        return static::$name;
    }
 
    public static function get_self()
    {
        return new self();
    }
 
    public static function get_static()
    {
        return new static();
    }
}
 
class kinsfolk extends parents
{
    protected static $name = '     ';
}
 
var_dump(kinsfolk::who_self()); //     
var_dump(kinsfolk::who_static()); //     
var_dump(kinsfolk::get_self()); //object(parents)#1 (0) {}
var_dump(kinsfolk::get_static()); //object(kinsfolk)#1 (0) {}
簡単で分かりやすい言い方で、
selfとはどの種類の中に書いてありますか?実際に呼び出したのはこの類です。
staticは、このクラスの使用を表しています。あなたが父親に書いたstaticです。そして、布団類をカバーします。使用するのは、サブタイプの方法や属性です。
締め括りをつける
このページではphp類のstaticとselfの区別についての文章を紹介します。もっと関連するphp類staticとselfの区別内容は以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。