PHP クラス ファイルと比較して、PHP ファイルで作成できる関数のコレクションを持つことの違いを知りたいですか?
5 に答える
実際には、CLASS
はインスタンス化できるという点で異なります。インスタンス化されると、独自の固有のプロパティと値を持ちます。
このようにして、同じクラスをそれぞれ固有のプロパティで複数回インスタンス化できます。
これの一般的な例は、ゲームのキャラクターです。つまり、というクラスがありますenemy
。クラスを何度もインスタンス化することで、5 体の敵を生成します。それぞれに独自のプロパティ、寿命、速度などがあります。各インスタンス化に個別にアクセスし、プロパティを調整するメソッドを実行できます。
クラス コンストラクト内で定義される関数はメソッドと呼ばれ、通常はそのクラスのインスタンスが機能する必要があります (静的メソッドを除く)。インスタンスなどは、操作するメソッド間で「共有」データを保持し、オブジェクトの動作をカプセル化します。
関数のコレクションもこれを行うことができます。たとえば、最初の引数として、などfopen()
に渡すことができるストリームを開きます。ストリーム クラスを使用して同様のアプローチを行うことができます。次に例を示します。fread()
fwrite()
$f = new MyFile('filename');
$f->read(10);
$f->write('hello');
とは対照的に:
$f = fopen('filename');
fread($f, 10);
fwrite($f, 'hello');
クラスは、インスタンス化できるデータと関数のコレクションです (インスタンスごとに異なるデータ セット)。
クラスは OOP の焦点であり、オブジェクトに焦点を合わせてコードを編成するために存在します。OOP は、命令型プログラミングよりもモジュール性を促進します。あなたの研究のために、別の質問に対するこの回答とそこに含まれるリンクを確認することをお勧めします。
関数のコレクションは、関数のランダムなコレクションです。クラスは、動作の特定の領域をカプセル化します。
たとえば、クラスに関数を追加する場合、「ここが正しい唯一の場所か?」と考える必要があります。
これらの両方の定義に適合する PHPを作成することは可能class
ですが、後者を目指すべきです。
PHP における関数とクラスの違いは、C 言語と C++ 言語の違いとして想像できると思います。C が最初に作成され、次に C++ がそのオブジェクト指向バージョンとして作成されました。PHP もそうです。最初は C に基づいて作成され、Web (個人用ホームページ) 用の単純化された Cとして作成され、後に OOP 機能が追加されました。しかし、PHP の優れている点はそのシンプルさにあり、プログラミングの経験がなくても数分でまったく新しいページを作成できます。PHP でクラスを使用すると、比較的単純なものを開発するだけではやり過ぎになる可能性があるため、この目的が破られます。
クラスはライブラリに最適です。それらを使用することをお勧めします。そして、それはより高度なコーディング スタイルです。クラスを作成するということは、さまざまなプロジェクトで使用できる独自のライブラリを作成することを意味します。それらを使いすぎないように注意してください。PHP のすべてにクラスが必要なわけではありません。永遠に繰り返される機能のためだけです。クラスは、プロジェクトに柔軟性とスケーラビリティを追加します。