PHP5_PHP チュートリアルの this、self、parent キーワードの詳細な説明

WBOY
リリース: 2016-07-13 17:33:25
オリジナル
755 人が閲覧しました

php(現在の主流の開発言語として)5は、オブジェクト指向言語のほとんどの機能を備えた言語です。php(現在の主流の開発言語として)4よりも多くのオブジェクト指向の機能を備えています。 、少しわかりにくい概念もあるので、説明が苦手な方はご容赦ください(この記事を読むには、PHP(として)のオブジェクト指向の知識が必要です。現在主流の開発言語)5 )

まずは上記の3つのキーワードを理解しましょう: this、self、parent 文字通りに理解しやすいのは、this、self、father、ははは、もっと楽しいです、確立しましょう最初にいくつかの概念を説明します。これらの 3 つのキーワードはどこで使用されますか? 予備的な説明をしましょう。これは現在のオブジェクトへのポインターです (C のポインターを使用して見てみましょう)。self は現在のクラスへのポインターです。 parent は親クラスへのポインタです。これを表現するのにこれ以上適した言語はないので、私たちはよくポインタを使います。笑、私は中国語をよく勉強していませんでした。 -_-#

まだよくわからないので、実例をもとにお話していきます。


(1) this

1 (現在の主流の開発言語として)
2
3 class UserName
4 {
5 //属性を定義する
6 private $name;
7
8 / /コンストラクターを定義します
9 function __construct( $name )
10 {
11 $this->name = $name //このポインターはここで使用されています
12 }
13
14 //デストラクター
15 function __destruct( ){}
16
17 //ユーザー名メンバー関数を出力します
18 function printName()
19 {
20 print( $this->name ) //このポインターを再度使用します
21 }
22 }
23
24 //オブジェクトをインスタンス化します
25 $nameObject = new UserName( "heiyeluren" );
26
27 //印刷を実行します
28 $nameObject->printName() //出力: heiyeluren
29
30 //秒オブジェクトのインスタンス化
31 $nameObject2 = new UserName( "php(現在の主流の開発言語)5" );
32
33 //印刷を実行
34 $nameObject2->printName (); : php(現在の主流の開発言語として)5
35?>

上記のクラスがそれぞれ 11 行目と 20 行目でこのポインターを使用していることがわかりますが、これは誰を指しているのでしょうか?実際、これはオブジェクトをインスタンス化するときに誰を指すかを決定します。たとえば、オブジェクトが初めてインスタンス化されるとき (25 行目)、this は $nameObject オブジェクトを指します。その後、18 行目で print( $this. ->name ) になると、当然 "heiyeluren" が出力されます。 2 番目のインスタンスでは、 print( $this->name ) が print( $nameObject2->name ) になるため、「php(現在の主流の開発言語として)5」が出力されます。したがって、これは現在のオブジェクト インスタンスへのポインターであり、他のオブジェクトやクラスを指すものではありません。

(2)self

まず第一に、self がクラス自体を指していること、つまり self はインスタンス化されたオブジェクトを指していないことを明確にする必要があります。一般に、self は静的変数を指すために使用されます。クラスで。

1 (現在の主流の開発言語として)
2
3 class Counter
4 {
5 //静的変数を含む属性を定義します
6 private static $firstCount = 0;
7 private $ lastcount;
8
9コンストラクター機能使用::(フィールド操作記号)
13

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/508642.html技術記事 PHP (現在の主流の開発言語) 5 は、オブジェクト指向言語のほとんどの機能を備えた言語です。PHP (現在の主流の開発言語) 4 よりも多くのオブジェクト指向機能を備えています。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート