たとえば、従業員管理アプリケーションには EmPloyee クラスが含まれる場合があります。このクラスを使用して、Gonn や Sally などの特定のインスタンスを作成および維持できます。
事前定義されたクラスに基づいてオブジェクトを作成することは、多くの場合、クラスのインスタンス化と呼ばれます。
オブジェクトは、次のように new キーワードを使用して作成されます:
コードをコピー コードは次のとおりです:
$employee = new Employee();
オブジェクトを作成すると、新しくインスタンス化されたオブジェクトには、クラスで定義されたすべてのプロパティと動作が含まれます。
オブジェクトのインスタンス化方法
オブジェクト指向プログラムの単位はオブジェクトですが、オブジェクトはクラスによってインスタンス化されます。クラスが宣言されたので、次のステップはオブジェクトをインスタンス化することです。 。クラスを定義した後、new キーワードを使用してオブジェクトを生成します。
コードをコピー コードは次のとおりです:
class Person
{
//以下は人物のメンバー属性
var $name; //人物の名前
var $sex; //人物の年齢
//以下その人のメンバーメソッドです
functionsay() //この人はどのように話すことができますか
{
echo "この人は話しています"
}
function run() //この人は歩くことができます メソッド
{
echo "この人は歩いています"
}
}
$p1=new person(); ();
$p3=new Person();
$p1=new Person();
このコードは、クラス、$ を介してインスタンス オブジェクトを生成するプロセスです。 p1 はインスタンスです。同様に、$p2 と $p3 もインスタンス化するオブジェクトの名前です。クラスは複数のオブジェクトをインスタンス化でき、各オブジェクトは独立しています。上記のコードは、3 人が各インスタンスをインスタンス化することに相当します。それは、メンバーの属性や属性がクラスに反映されている限り、誰もが自分の名前、性別、年齢の属性を持っていることを意味するだけです。メンバー メソッドの場合、インスタンス化されたオブジェクトにはこれらのプロパティとメソッドが含まれます。
PHP のオブジェクト (整数型や浮動小数点型など) も、さまざまな種類のデータを格納するために使用されます。これらは、操作中にメモリにロードされる必要があります。メモリ?論理的に言えば、メモリはスタック領域セグメント、ヒープ領域セグメント、コードセグメント、初期化静的セグメントの 4 つのセグメントに大別され、プログラム内の異なる宣言は異なるメモリ セグメントに配置され、スタック領域セグメントは同じ領域を占有します。整数 1、10、100、1000、10000、100000 など、長さが短くスペースを占有するデータ型は、メモリ内で同じ長さのスペースを占有し、すべて 64 ビットと 4 バイトです。 それでは、可変長でスペース占有量が大きいデータ型のデータは、そのメモリ セグメントのどこに配置されるべきでしょうか?このようなデータはヒープ メモリに配置されます。スタック メモリには直接アクセスできますが、ヒープ メモリには直接アクセスできません。このオブジェクトの場合、それは大きなデータ型であり、可変長の領域を占有するため、オブジェクトはヒープに配置されますが、オブジェクト名はスタックに配置されるため、オブジェクトを介して使用できます。名前。 。
$p1=new Person(); このコードの場合、$p1 はスタック メモリ内のオブジェクト名で、new Person() はヒープ メモリ内の実際のオブジェクトです。
等号の右側は実際のオブジェクト インスタンス、つまりヒープ メモリ内のエンティティです。ここには合計 3 回の new person() があるため、ヒープ内に 3 つのスペースが開かれ、PHP 内で各オブジェクトは互いに独立しており、独自のスペースを使用します。このキーワードが出現すると、オブジェクトがインスタンス化され、ヒープ内に独自のスペースが作成されます。
ヒープ内の各インスタンス オブジェクトには、属性が保存されます。たとえば、ヒープ内のインスタンス オブジェクトはすべて、名前、性別、年齢を保存します。各属性にはアドレスがあります。 $p1=new Person(); 等号 $p1 の右側は参照変数です。代入演算子 "=" を介してオブジェクトの先頭アドレスが参照変数 "$p1" に代入されます。オブジェクトの最初のアドレス $p1 は、ヒープ内のオブジェクトを指すポインターに相当するため、通常は参照変数 $p1 を介してオブジェクトを操作することもできます。オブジェクトはオブジェクトを参照します。