PHPにおけるthis、self、parentキーワードの違いと使い方の詳細な説明
{一}この記事の PHP における this、self、parent の違いの 1 つ
オブジェクト指向プログラミング (OOP、オブジェクト指向プログラミング) は、今やプログラマーの基本スキルとなっています。 PHP の高度なプログラミングに OOP アイデアを使用することは、PHP プログラミング能力を向上させ、Web 開発アーキテクチャを計画する上で非常に有意義です。 書き直された後、PHP5 は OOP のサポートにおいて大きな進歩を遂げ、オブジェクト指向言語のほとんどの機能を備えた言語になりました。PHP4 よりも多くのオブジェクト指向機能を備えています。ここで私が主に話しているのは、this、self、parentという3つのキーワードの違いです。文字通り理解すると、彼らはそれぞれこれ、私、そして父親を指します。まず予備的な説明をしておきます。これは現在のオブジェクトへのポインタ (C のポインタとみなすことができます)、self は現在のクラスへのポインタ、parent は親クラスへのポインタです。これより適切に表現できる言語がないため、ここでの説明にはポインタを頻繁に使用します。ポインタの概念については、百科事典を参照してください。
実例をもとにお話しましょう。
<?php classname //建立了一个名为name的类 { private$name; //定义属性,私有 //定义 构造函数 ,用于初始化赋值 function construct( $name ) { $this->name =$name; //这里已经使用了this指针语句① } // 析构函数 function destruct(){} //打印用户名成员函数 function printname() { print( $this->name); //再次使用了this指针语句②,也可以使用echo输出 } } $obj1 = new name("PBPHome"); //实例化对象 语句③ //执行打印 $obj1->printname(); //输出:PBPHome echo"<br>"; //输出:回车 //第二次实例化对象 $obj2 = new name( "PHP" ); //执行打印 $obj2->printname(); //输出:PHP ?>
説明: 上記のクラスはステートメント①とステートメント②でそれぞれこのポインタを使用していますが、そのときこれは誰を指しているのでしょうか?実際、これは、オブジェクトを初めてインスタンス化するとき (ステートメント③)、その時点でステートメント②の print を実行するときに、これが誰を指すかを決定します。とすると、 print( $this- >
{2} PHP における this、self とparent の違い パート 2 self
まず第一に、self がクラス自体を指していること、つまり self がクラス自体を指していることを明確にする必要があります。つまり、self はすでにインスタンス化されたオブジェクトを指しません。通常、self はクラス内の静的変数を指すために使用されます。クラス内で静的メンバーを使用する場合 (通常はキーワード static を使用します)、呼び出すために self も使用する必要があります。また、self を使用して静的変数を呼び出す場合は:: (フィールド
演算子 数値) を使用する必要があることにも注意してください。例を参照してください。
<?php classcounter //定义一个counter的类 { //定义属性,包括一个静态变量$firstCount,并赋初值0 语句① private static $firstCount = 0; private $lastCount; //构造函数 function construct() { $this->lastCount =++self::$firstCount; //使用self来调用静态变量 语句② } //打印lastCount数值 function printLastCount() { print( $this->lastCount ); } } //实例化对象 $obj = new Counter(); $obj->printLastCount(); //执行到这里的时候,程序输出1 ?>
例を挙げて説明するのは以上です。第二章の終わり。
{3} PHP における this、self とparent の違い Part 3 親
まず、parent が親クラスへのポインタであることを明確にします。通常、親クラスのコンストラクターを呼び出すにはparentを使用します。例は次のとおりです。
<?php //建立基类Animal class Animal { public $name; //基类的属性,名字$name //基类的构造函数,初始化赋值 public function construct( $name ) { $this->name = $name; } } //定义派生类Person 继承自Animal类 class Person extends Animal { public$personSex; //对于派生类,新定义了属性$personSex性别、$personAge年龄 public $personAge; //派生类的构造函数 function construct( $personSex, $personAge ) { parent::construct( "PBPHome"); //使用parent调用了父类的构造函数 语句① $this->personSex = $personSex; $this->personAge = $personAge; } //派生类的成员函数,用于打印,格式:名字 is name,age is 年龄 function printPerson() { print( $this->name. " is ".$this->personSex. ",age is ".$this->personAge ); } } //实例化Person对象 $personObject = new Person( "male", "21"); //执行打印 $personObject->printPerson();//输出结果:PBPHome is male,age is 21 ?>
概要: これはインスタンス化時に決定されるオブジェクト インスタンスへのポインターです。self はクラス自体への参照であり、通常はクラス内の静的変数を指すために使用されます。parent は親クラスへの参照であり、通常は親として使用されます。親クラスのコンストラクターを呼び出します。
以上がPHPにおけるthis、self、parentキーワードの違いと使い方の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











エラーの理由は、urllib3 ライブラリの例外タイプである NameResolutionError(self.host,self,e)frome です。このエラーの理由は、DNS 解決が失敗したこと、つまり、ホスト名または IP アドレスが試みられたことです。解決できるものが見つかりません。これは、入力された URL アドレスが間違っているか、DNS サーバーが一時的に利用できないことが原因である可能性があります。このエラーを解決する方法 このエラーを解決するにはいくつかの方法があります。 入力された URL アドレスが正しいかどうかを確認し、アクセス可能であることを確認します。 DNS サーバーが利用可能であることを確認します。コマンド ラインで「ping」コマンドを使用してみてください。 DNS サーバーが利用可能かどうかをテストします。プロキシの背後にある場合は、ホスト名の代わりに IP アドレスを使用して Web サイトにアクセスしてみてください。

Python で self の使用法を紹介する前に、まず Python のクラスとインスタンスを紹介しましょう。オブジェクト指向の最も重要な概念はクラスとインスタンスであることはわかっています。クラスは抽象的なテンプレートです。学生のような抽象的なものです。 Student クラスによって表されます。インスタンスはクラスに基づいて作成された特定の「オブジェクト」であり、各オブジェクトはクラスから同じメソッドを継承しますが、そのデータは異なる場合があります。 1. Student クラスを例にします。Python では、クラスは次のように定義されます: classStudent(object):pass(Object) は、クラスがどのクラスから継承するかを示します。Object クラスはすべて

オブジェクト指向プログラミングでは、継承により、既存のクラスのプロパティとメソッドを継承する新しいクラスを作成できます。この強力な概念により、プログラムのコードの再利用、モジュール性、拡張性が可能になります。親クラスの属性にアクセスする前に、次のことを確認してください。

この記事は、vue ソース コードを解釈するのに役立ち、これを使用して Vue2 のさまざまなオプションのプロパティにアクセスできる理由を紹介します。

同僚は、これによって指摘されたバグのために立ち往生しました。Vue2 のこの指摘の問題により、アロー関数が使用され、その結果、対応する props を取得できなくなりました。私がそれを彼に紹介したとき、彼はそれを知りませんでした。その後、私はわざとフロントエンド コミュニケーション グループに目を向けました。これまでのところ、フロントエンド プログラマーの少なくとも 70% はまだそれを理解していません。今日私はそれを共有しますyou this link. もしすべてが間違っている場合 まだ学習していない場合は、大きな口を与えてください。

jQuery での this キーワードの柔軟な使用 jQuery では、this キーワードは非常に重要かつ柔軟な概念であり、現在操作されている DOM 要素を参照するために使用されます。このキーワードを合理的に使用することで、ページ上の要素を簡単に操作し、さまざまなインタラクティブな効果や機能を実現できます。この記事では、特定のコード例を組み合わせて、jQuery でのこのキーワードの柔軟な使用方法を紹介します。簡単なこの例 まず、簡単なこの例を見てみましょう。あるとします。

これは何ですか?次の記事では、JavaScript でのこれについて説明し、関数の呼び出し方法の違いによる違いについて説明します。

1. this キーワード 1. this の型: どのオブジェクトが呼び出されるかがそのオブジェクトの参照型 2. 使用法の概要 1. this.data;//アクセス属性 2. this.func();// アクセスメソッド 3.this ( );//このクラス内の他のコンストラクタを呼び出す 3. 使い方の説明 1.this.dataはメンバメソッドで使用しているので、これを追加しないとどうなるかを見てみましょう classMyDate{publicintyear;publicintmonth;publicintday; publicvoidsetDate(intyear, intmonth,intday){はい
