this、self、parent の違いについては、PHP_PHP チュートリアルで詳しく説明されています。
{一}PHP における this、self、parent の違いの 1 つこの記事
オブジェクト指向プログラミング (OOP、オブジェクト指向プログラミング) は、今やプログラマーの基本スキルとなっています。 PHP の高度なプログラミングに OOP アイデアを使用することは、PHP プログラミング能力を向上させ、Web 開発アーキテクチャを計画する上で非常に有意義です。
書き直された後、PHP5 は OOP のサポートにおいて大きな進歩を遂げ、オブジェクト指向言語のほとんどの機能を備えた言語になりました。PHP4 よりも多くのオブジェクト指向機能を備えています。 ここでは主に、「これ」「自分」「親」という3つのキーワードの違いについてお話します。 文字通りに理解すると、それぞれこれ、私、そして父親を指します。まず予備的な説明をしておきます。これは現在のオブジェクトへのポインタ (C のポインタとみなすことができます)、self は現在のクラスへのポインタ、parent は親クラスへのポインタです。これを表現するのにこれより適した言語がないため、ここでの説明にはポインタを頻繁に使用します。ポインタの概念については、百科事典を参照してください。
実例をもとにお話しましょう。初期化代入に使用
Function __construct( $name )
{
} print($this->name) //このポインターステートメントを再度使用します。②、エコー出力も使用できます
}
}
$obj1 = new name ("PBPHome"); //インスタンス化オブジェクト文③
//印刷を実行
$obj1->printname(); //出力: PBPHome
echo"
"; //出力: Enter
/ /オブジェクトの 2 番目のインスタンス化
$obj2 = new name( "PHP" );
//印刷を実行します
$obj2->printname();
上記のクラスは、ステートメント①とステートメント②でそれぞれこのポインタを使用します。では、これは当時誰を指しているのでしょうか?実際、これは、オブジェクトを初めてインスタンス化するとき (ステートメント③)、その時点でステートメント②の print を実行するときに、これが誰を指すかを決定します。とすると、 print( $this- >
{2} PHP における this、self、parent の違い パート 2 self
この記事では self の使い方を説明します
まず第一に、self がクラスを指していることを明確にする必要がありますそれ自体、つまり self がインスタンス化されたオブジェクトを指すかどうか。 一般に、self はクラス内の静的変数を指すために使用されます。クラス内で静的メンバーを使用する場合 (通常はキーワード static を使用します)、呼び出すために self も使用する必要があります。また、self を使用して静的変数を呼び出す場合は、:: (フィールド演算子記号) を使用する必要があることに注意してください。例を参照してください。
コードをコピーします
①
関数__construct()
関数 printLastCount( )
//実行がここに到達すると、プログラムは 1 を出力します
?>
注目すべき箇所は①の文と②の文の2か所です。ステートメント①で静的変数 $firstCount を定義し、ステートメント②でその値を self を使って呼び出しています。このとき呼び出すのは、クラス自身が定義した静的変数 $frestCount です。私たちの静的変数は、次のオブジェクトのインスタンスとは何の関係もありません。それはクラスにのみ関連しています。その後、クラス自体を呼び出した場合、self がクラス自体を指しており、 を参照するために this を使用することはできません。オブジェクト インスタンスとは何の関係もありません。次に、前に使用した this はインスタンス化されたオブジェクト $obj を呼び出しますので、混乱しないでください。
例を挙げて説明するのは以上です。第二章の終わり。
{3} PHP における this、self とparent の違い Part 3 親
この記事では、parent の使い方について説明します。
まず、parent が親クラスへのポインタであることを明確にします。通常、親クラスのコンストラクターを呼び出すにはparentを使用します。例は次のとおりです。
コードをコピーします
コードは次のとおりです。
// 基本クラスを作成します Animal
class Animal { Public $name; // Attributes of基本クラス、name $name
/ /基本クラスのコンストラクター、初期化代入 Public function __construct( $name ) {
$this->name = $name;
}
function __construct( $personSex , $personAge)
{
parent::__construct( "PBPHome"); //parentを使って親クラス①のコンストラクタ文を呼び出します
メンバー導出された関数印刷に使用されるクラス、形式: name は name、age は age
function printperson()
{
is ".$this->personAge );
}
}
// Person オブジェクトをインスタンス化します
$personObject = new Person( "male", "21");
//印刷を実行
$personObject->printperson ();//出力結果: PBPHome は男性、年齢は 21 です
?>
これの使い方も含まれており、誰もが自分で分析できます。この詳細に注目します。メンバー属性はすべてパブリック (クラス内外のコードからアクセスできるパブリック属性とメソッド)、特に親クラスの属性とメソッドはこれを介してアクセスします。ポイントは①の文:parent::__construct("heiyeluren") このとき、parentを使って親クラスのコンストラクタを呼び出し、親クラスを初期化します。名前は PBPHome です。別のオブジェクト $personObject1 をインスタンス化してテストできます。印刷後も、名前は PBPHome のままです。
概要: これはインスタンス化時に決定されるオブジェクト インスタンスへのポインターです。self はクラス自体への参照であり、通常はクラス内の静的変数を指すために使用されます。parent は親クラスへの参照であり、通常は親として使用されます。親クラスのコンストラクターを呼び出します。

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHPでは、特性は方法が必要な状況に適していますが、継承には適していません。 1)特性により、クラスの多重化方法が複数の継承の複雑さを回避できます。 2)特性を使用する場合、メソッドの競合に注意を払う必要があります。メソッドの競合は、代替およびキーワードとして解決できます。 3)パフォーマンスを最適化し、コードメンテナビリティを改善するために、特性の過剰使用を避け、その単一の責任を維持する必要があります。

依存関係噴射コンテナ(DIC)は、PHPプロジェクトで使用するオブジェクト依存関係を管理および提供するツールです。 DICの主な利点には、次のものが含まれます。1。デカップリング、コンポーネントの独立したもの、およびコードの保守とテストが簡単です。 2。柔軟性、依存関係を交換または変更しやすい。 3.テスト可能性、単体テストのために模擬オブジェクトを注入するのに便利です。

SplfixedArrayは、PHPの固定サイズの配列であり、高性能と低いメモリの使用が必要なシナリオに適しています。 1)動的調整によって引き起こされるオーバーヘッドを回避するために、作成時にサイズを指定する必要があります。 2)C言語アレイに基づいて、メモリと高速アクセス速度を直接動作させます。 3)大規模なデータ処理とメモリに敏感な環境に適していますが、サイズが固定されているため、注意して使用する必要があります。

PHPは、$ \ _ファイル変数を介してファイルのアップロードを処理します。セキュリティを確保するための方法には次のものが含まれます。1。アップロードエラー、2。ファイルの種類とサイズを確認する、3。ファイル上書きを防ぐ、4。ファイルを永続的なストレージの場所に移動します。

JavaScriptでは、nullcoalescingoperator(??)およびnullcoalescingsignmentoperator(?? =)を使用できます。 1.??最初の非潜水金または非未定されたオペランドを返します。 2.??これらの演算子は、コードロジックを簡素化し、読みやすさとパフォーマンスを向上させます。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

Dreamweaver Mac版
ビジュアル Web 開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック



