この記事では、PHPクラスを使用してオブジェクト指向プログラミングの基本を探ります。
クラスとオブジェクトの紹介から始めます。この記事の後半の継承と多型などのいくつかの高度な概念について説明します。 OOPと呼ばれるアプローチは、長期にわたって簡単に保守可能でスケーラブルな方法で複雑なアプリケーションを開発するのに役立つアプローチです。 OOPの世界(PHPでオブジェクトを作成するため)では、、
、またはclassPerson
」の概念があります。 「Car
オブジェクトAnimal
」はクラスのインスタンスであり、同じクラスの複数のインスタンスを作成できます。たとえば、単一の
、、など)になる可能性があります。たとえば、人のクラスの場合、、、およびがある場合があります。その後、各オブジェクトはそれらのプロパティに対して独自の値を持ちます。 オブジェクトプロパティの値を操作し、オブジェクトの操作を実行できるように、クラス内のメソッドを定義することもできます。例として、オブジェクト情報をデータベースに保存するAメソッドを定義できます。クラスは、実際のエンティティを表すテンプレートであり、エンティティのプロパティと方法を定義します。このセクションでは、典型的なPHPクラスの基本的な解剖学について説明します。Person
dan
新しい概念を理解する最良の方法は、例を挙げています。それでは、従業員エンティティを表す次のスニペットのzainab
クラスを見てみましょう。hector
最初の行のname
ステートメントはage
クラスを定義します。次に、PHPのプロパティ、コンストラクター、およびその他のクラスメソッドを宣言します。PHPのクラスプロパティphoneNumber
クラスプロパティを、オブジェクトに関する情報を保持するために使用される変数と考えることができます。上記の例では、3つのプロパティを定義していますsave
-
、
、および。ほとんどの場合、クラスプロパティはインスタンス化されたオブジェクトを介してアクセスされます。
これらのプロパティはprivate
です。つまり、PHPのクラス内からのみアクセスできることを意味します。これは、プロパティにとって最も安全なアクセスレベルです。この記事の後半で、PHPのクラスプロパティとメソッドのさまざまなアクセスレベルについて説明します。
PHPクラスのコンストラクター
コンストラクターは、オブジェクトをインスタンス化するときに自動的に呼ばれる特別なクラスメソッドです。次の2つのセクションでオブジェクトをインスタンス化する方法を確認しますが、今のところ、オブジェクトが作成されているときにコンストラクターを使用してオブジェクトプロパティを初期化するために使用されることを知る必要があります。ほとんどの場合、それらはオブジェクトのプロパティにアクセスして操作し、関連操作を実行するために使用されます。
上記の例では、オブジェクトに関連付けられている姓を返す__construct
メソッドを定義しました。
それは、PHPのクラス構造の簡単な紹介です。次のセクションでは、
クラスのオブジェクトをインスタンス化する方法を確認します。これで、クラスを使用する場合は、インスタンス化する必要があり、最終結果はオブジェクトです。したがって、クラスを青写真と考えることができます。オブジェクトは、前のセクションで作成したばかりのクラスのコンテキストで、そのクラスのオブジェクトをインスタンス化する方法を見てみましょう。そのクラスのインスタンス。クラスがメソッドを定義し、引数が必要な場合は、オブジェクトをインスタンス化するときにそれらの引数を渡す必要があります。私たちの場合、getLastName
クラスコンストラクターには3つの引数が必要であるため、
メソッドは自動的に呼び出されます。Employee
オブジェクトのクラスメソッドを呼び出しました。もちろん、次のスニペットに示されているように、同じクラスの複数のオブジェクトを作成できます。
次の画像は、従業員クラスとそのインスタンスのグラフィカルな表現です。capsulation
前のセクションでは、Employee
クラスのオブジェクトをインスタンス化する方法について説明しました。 $objEmployee
オブジェクト自体がクラスのプロパティと方法をまとめることに注意するのは興味深いことです。言い換えれば、プログラムの残りの部分からこれらの詳細を隠しています。 OOPの世界では、これはデータのカプセル化と呼ばれます。
カプセル化は、OPの重要な側面であり、オブジェクトの特定のプロパティまたはメソッドへのアクセスを制限できます。そして、それはディスカッションのための別のトピックに私たちをもたらします:アクセスレベル。
アクセスレベル
クラス内のプロパティまたはメソッドを定義すると、これらの3つのアクセスレベルのいずれかを宣言できます—public
、private
、protected
上記の例でわかるように、
繰り返しますが、プライベートアクセスレベルを理解するために前の例を修正しましょう。したがって、
メソッドを使用したように、セッターメソッドを使用して私有地の値を設定する必要があります。たとえば、おそらく、そのプロパティが変更された場合は、ある程度のアクションを実行する必要があります(データベースの更新、テンプレートの更新、またはテンプレートの再レンダリング)。その場合、セッターメソッドを定義し、プロパティが変更されたときに特別なロジックを処理できます。<?php <br>class Employee<br>{<br> private $first_name;<br> private $last_name;<br> private $age;<br> <br> public function __construct($first_name, $last_name, $age)<br> {<br> $this->first_name = $first_name;<br> $this->last_name = $last_name;<br> $this->age = $age;<br> }<br><br> public function getFirstName()<br> {<br> return $this->first_name;<br> }<br><br> public function getLastName()<br> {<br> return $this->last_name;<br> }<br><br> public function getAge()<br> {<br> return $this->age;<br> }<br>}<br>?><br>
保護されたアクセスname
として宣言すると、それを定義した同じクラスと問題のあるクラスを継承するクラスでアクセスできます。次のセクションで継承について説明しますので、少し後で保護されたアクセスレベルに戻ります。継承
継承は、オブジェクト指向プログラミングパラダイムの重要な側面であり、拡張して他のクラスのプロパティと方法を継承できるようにします。継承されているクラスは親クラスと呼ばれ、他のクラスを継承するクラスは子クラスと呼ばれます。子クラスのオブジェクトをインスタンス化すると、親クラスのプロパティとメソッドも継承します。
継承の概念を理解するために次のスクリーンショットを見てみましょう。現実世界の例を越えて、それがどのように機能するかを理解するために。

ここで注意すべき重要なことは、Person
クラスがEmployee
キーワードを使用して
クラスは、公共または保護されていると宣言されている
クラスのすべてのプロパティとメソッドにアクセスできます。 (プライベートとして宣言されているメンバーにアクセスできません。)<?php <br>class Employee<br>{<br> private $first_name;<br> private $last_name;<br> private $age;<br> <br> public function __construct($first_name, $last_name, $age)<br> {<br> $this->first_name = $first_name;<br> $this->last_name = $last_name;<br> $this->age = $age;<br> }<br><br> public function getFirstName()<br> {<br> return $this->first_name;<br> }<br><br> public function getLastName()<br> {<br> return $this->last_name;<br> }<br><br> public function getAge()<br> {<br> return $this->age;<br> }<br>}<br>?><br>
上記の例では、Employee
オブジェクトはextends
クラスとPerson
クラスで定義されているEmployee
Person
メソッドにアクセスできます。最後に、
クラスの$employee
メソッドにアクセスできません。一方、getName
setName
オブジェクトを使用して、Person
クラスの
callToProtectedNameAndAge
多型getNameAndAge
Employee
$employee
多型は、データタイプに基づいてオブジェクトを処理する能力を指すオブジェクト指向プログラミングの世界におけるもう1つの重要な概念です。 方法。これはメソッドオーバーライドと呼ばれます。現実世界の例をすぐに進めて、オーバーライドの方法の概念を理解しましょう。
<?php <br>class Employee<br>{<br> private $first_name;<br> private $last_name;<br> private $age;<br> <br> public function __construct($first_name, $last_name, $age)<br> {<br> $this->first_name = $first_name;<br> $this->last_name = $last_name;<br> $this->age = $age;<br> }<br><br> public function getFirstName()<br> {<br> return $this->first_name;<br> }<br><br> public function getLastName()<br> {<br> return $this->last_name;<br> }<br><br> public function getAge()<br> {<br> return $this->age;<br> }<br>}<br>?><br>
ご覧のとおり、formatMessage
クラスでオーバーライドすることにより、BoldMessage
メソッドの動作を変更しました。重要なことは、親クラスのインスタンスであろうと子クラスのインスタンスであろうと、オブジェクトタイプに基づいてメッセージが異なる形式でフォーマットされることです。これはPHPでは直接サポートされていませんが、同様の機能を達成するためのいくつかの回避策があります。
結論
PHPクラスを使用したオブジェクト指向プログラミングの基本を知っています。オブジェクト指向のプログラミングは膨大なテーマであり、その複雑さの表面を引っ掻いただけです。このチュートリアルは、OOPの基本を始めて、さらに高度なOOPトピックを学ぶように動機付けられることを願っています。今日、PHPのコンテキストで、OOPのいくつかの基本的な概念について説明しました。また、いくつかの実際の例を紹介する機会もありました。以上がクラスとオブジェクトを備えたオブジェクト指向PHPの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelのサービスコンテナとサービスプロバイダーは、そのアーキテクチャの基本です。 この記事では、サービスコンテナ、詳細サービスプロバイダーの作成、登録、および実用的な使用法を例で説明します。 Oveから始めます

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ホットトピック









