ホームページ >バックエンド開発 >PHPチュートリアル >PHP オブジェクト指向プログラミングの概要_PHP チュートリアル
オブジェクト指向プログラミングは、大規模なソフトウェア プロジェクト、特に複数人が関与するプロジェクトにソリューションを提供するように設計されており、ソース コードが 10,000 行以上になると、モジュールが秘密の同盟を形成するたびに、望ましくない副作用が発生する可能性があります。第一次世界大戦前のヨーロッパのようなものです。
注: これは、モジュール間の相関性が高すぎ、相互依存性が強すぎることを意味します。
ログインを処理するモジュールがそれに応じて変更される場合を想像してください。クレジット カード処理モジュールがそのデータベース接続を共有できるようにすることは、もちろん開始点としては適切であり、別のデータベース接続を行う必要がなくなります。ただし、場合によっては、ログイン処理モジュールが変数の 1 つの名前を変更する可能性があります。両者の間の契約が破棄され、クレジット カード モジュールの処理でエラーが発生し、さらに請求書を処理するモジュールでエラーが発生します。これにより、システム内のすべての無関係なコンポーネントがすべて正常に動作しなくなる可能性があります。
それで、大多数のプログラマーは、結合とカプセル化を評価し、結合が少ないほど良いと考えています。既存のプロジェクトからモジュールを取り出して、別の新しいプロジェクトで使用することもできます。また、他のモジュールへの影響を心配せずに、特定のモジュール内で大規模な変更を加えたい場合にも、モジュールは次のように扱われます。比較的独立しており、モジュール間のデータ通信はインターフェイスを通じて行われます。モジュールは相互の変数名を覗くことはなく、関数を通じて丁寧にリクエストを送信します。
カプセル化は、あらゆるプログラミング言語で使用される原理です。多くの手続き型言語では、怠け者になりがちです。オブジェクト指向プログラミングでは、プログラマがカプセル化の原則に違反することを避けるために、モジュールを使用して仮想的な WEB を構築することができます。モジュールはオブジェクトに編成されます。これらのオブジェクトにはメソッドとプロパティがあります。抽象的な観点から見ると、メソッドはオブジェクトの動作であり、プロパティはオブジェクトの特性です。理想的なオブジェクト指向システムでは、システムはオブジェクトとメソッドを介したオブジェクト間の関係で構成されます。オブジェクトのセットをベイクする場合、クラスはオブジェクトのプロパティを定義します。 Cookie オブジェクトの場合、クラスは Cookie メーカーになります。クラスのプロパティとメソッドは、呼び出されるメンバーです。「またはメソッド メンバー」と表現することでデータ メンバーにアクセスできます。
オブジェクトにアクセスするためのさまざまな方法が提供されます。 PHP は C++ から概念を借用し、識別子の下に関数と変数を含めるためのデータ型を提供します。 PHP が最初に設計されたとき、そして PHP3 が開発されたときでさえ、PHP はコード 100,000 行を超える大規模プロジェクトを開発する機能を提供することを目的としていませんでした。 PHP や Zend エンジンの発展により、大規模なプロジェクトを開発できるようになりましたが、プロジェクトがどれほど大きくても、スクリプトをクラス内に記述すればコードを再利用できます。これは、特に自分のコードを他の人と共有したい場合には良いアイデアです。
オブジェクトのアイデアは、コンピューター サイエンスの中で最もエキサイティングな概念の 1 つです。最初はそれをマスターするのは難しいですが、一度マスターすれば、心で考えることが非常に自然に感じられるようになるでしょう。
PHP5 のオブジェクト モデルPHP5 には、単一継承、制限されたアクセス、およびオーバーロード可能なオブジェクト モデルがあり、この章で後ほど詳しく説明しますが、さらに、クラス間の親子関係も含まれます。 PHP は、プロパティとメソッドへの制限されたアクセスをサポートし、外部クラスからのアクセスを禁止するメンバーを宣言できます。 public.private は、カプセル化のより良い実装に適しています。
PHP5 のオブジェクト モデルは、オブジェクトを他のデータ型とは異なるものとして扱い、参照によって渡されます。オブジェクトの受け渡しと返しは、ハンドルベースです。オブジェクト モデルについては、この章の最後で詳しく説明します。これは PHP5 の最も重要な新機能です。より直接的なオブジェクト モデルにより、ハンドルベースのシステムにはさらなる利点があります。効率が向上し、メモリの使用量が減り、
以前のバージョンの PHP では、スクリプトはデフォルトでオブジェクトをコピーしていましたが、PHP 5 では、オブジェクト システムが複雑になる一方で、スクリプトの実行効率が向上しました。同時に、コピーを減らすと、占有メモリが減り、他の操作に多くのメモリが残されるため、効率も向上します。
注: ハンドルに基づいており、これは 2 つのオブジェクトを意味します。同じメモリを指すことができるため、コピー操作が減るだけでなく、メモリ使用量も削減されます。
Zand エンジン 2 は柔軟性が高く、1 つのコマンドでオブジェクトを破棄できるようになりました。オブジェクトが破棄される前にクラス メソッドを実行できます。これはメモリ使用率にも優れており、オブジェクトへの参照がなくなったことを PHP が明確に認識し、解放されたメモリを他の用途に割り当てることができます
。 につながる可能性があります。