ホームページ  >  記事  >  バックエンド開発  >  PHPにおけるselfと$thisの違いを詳しく解説

PHPにおけるselfと$thisの違いを詳しく解説

小云云
小云云オリジナル
2018-03-14 10:56:141636ブラウズ

オブジェクト指向プログラミング (OOP、オブジェクト指向プログラミング) は、今やプログラマーの基本スキルとなっています。 PHP の高度なプログラミングに OOP アイデアを使用することは、PHP プログラミング能力を向上させ、Web 開発アーキテクチャを計画する上で非常に有意義です。

ここでは主にthisとselfキーワードの違いについて話します。文字通り理解すると、これと自分自身を指します。まず予備的な説明をしておきます。これは現在のオブジェクトへのポインタ (C のポインタとみなすことができます) であり、self は現在のクラスへのポインタです。ここでの説明にはポインタを頻繁に使用します。

私はフレームワークをよく使うので、PHPの基本的な動作メカニズムやメソッドを知らない部分があるので、最近はそれらの基本的なことを勉強するのが好きです。書いたものはあまり良くありませんが、それらは段階的に実装できます。はい、その方が理解しやすいです。現在、インターネット上の情報のほとんどは、マニュアルからコピーされたものであり、非常に公式のものであるか、実際には少しわかりにくいものであるため、それしかできません。 1.self は、このクラスの静的プロパティと静的メソッドにアクセスでき、親クラスの静的プロパティと静的メソッドにアクセスできます。 self を使用する場合、

class self_test {  
    static$instance;  
    publicfunction __construct(){  
        self::$instance = 'instance';//静态属性只能通过self来访问
    }  
    publicfunction tank(){  
        return self::$instance;//访问静态属性
    }  
}  
$str = new self_test();  
echo$str->tank();

    ページ出力:instance
class self_test {  
    static$instance;  
    publicfunction __construct(){  
        self::$instance = 'dell';  
    }  
    staticpublicfunction pentium(){  
        return self::$instance;//静态方法也可以继续访问静态变量,访问时需要加$
    }  
    publicfunction tank(){  
        return self::pentium();//访问静态方法pentium()
    }  
}  
$str = new self_test();  
echo$str->tank();

    ページ出力:dell
  1. 2. Self は、const

class self_test {  
    const  NAME = 'tancy';  
    publicfunction tank(){  
        return self::NAME;  
    }  
}  
$str = new self_test();  
echo$str->tank();

    で定義された定数にアクセスできます。ページ出力:tancy
  1. II.this

1.thisはこのクラスのメソッドと属性を呼び出すことができ、または親クラスの調整可能なメソッドと属性を呼び出すことができます。staticとconst定数を除いて、基本的にその他すべてであると言えます。これを使用して

class self_test {  
    public$public;  
    private$private;  
    protected$protected;  
    publicfunction __construct(){  
        $this->public = 'public';  
        $this->private = 'private';  
        $this->protected = 'protected';  
    }  
    publicfunction tank(){  
        return$this->public;  
    }  
    publicfunction dell(){  
        return$this->private;  
    }  
    publicfunction datesrt(){  
        return$this->protected;  
    }  
}  
$str = new self_test();  
echo$str->tank();  
echo"</br>";  
echo$str->dell();  
echo"</br>";  
echo$str->datesrt();

    に連絡することができます

以上がPHPにおけるselfと$thisの違いを詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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