5. オブジェクトをインスタンス化する方法
オブジェクト指向プログラムの単位はオブジェクトであると述べましたが、オブジェクトはクラスを介してインスタンス化されます。
クラスが宣言されるので、次のステップはオブジェクトをインスタンス化することです。
クラスを定義した後、new キーワードを使用してオブジェクトを生成します。
コード スニペット
$对象名称= new 类名称(); <?php class Person{ //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say(){ //这个人可以说话的方法 echo "这个人在说话"; } function run(){ //这个人可以走路的方法 echo "这个人在走路"; } } $p1=new Person(); $p2=new Person(); $p3=new Person(); ?> $p1=new Person();
このコードは、クラスを通じてインスタンス オブジェクトを生成するプロセスです。同様に、$p2、
$p3 も、クラスがインスタンス化できるオブジェクトの名前です。複数のオブジェクトがインスタンス化されます。各オブジェクトは独立しています。上記のコードは、各人が独自の名前を持っていることを意味します。メンバーの属性とメンバーのメソッドがクラスに反映されている限り、インスタンス化されたオブジェクトにはこれらの属性とメソッドが含まれます。
整数型や浮動小数点型などの PHP のオブジェクトも、さまざまな型のデータを保存するために使用されるデータ クラスです。
それらは実行時に使用するためにメモリにロードされる必要があるため、メモリ内のオブジェクトはどうなっていますか。反映されましたか?メモリは論理的に 4 つのセグメント、スタック領域セグメント、ヒープ領域セグメント、コード セグメント、および初期化静的セグメントに分割されます。スタック領域セグメントは、同じ記憶領域を占有します。整数 1、10、100、1000、10000、100000 などの長くて小さなスペースを占めるものは、メモリ内で同じ長さのスペースを占め、すべて 64 ビットと 4 ワードです。では、データ長が固定されておらず、多くのスペースを占めるデータ型は、メモリのそのセグメントのどこに配置されているのでしょうか?このようなデータはヒープ メモリに配置されます。スタックメモリは直接アクセスできますが、ヒープメモリは直接アクセスできないメモリです。このオブジェクトの場合、それは大きなデータ型であり、可変長の領域を占有するため、オブジェクトはヒープに配置されますが、オブジェクト名はスタックに配置されます。
オブジェクトを使用します。
$p1=new Person();
このコードでは、$p1 はスタック メモリ内のオブジェクト名、new Person() はヒープ メモリ内の実際のオブジェクトです
、詳細については、以下の図を参照してください:
上の図からわかるように、 $p1=new Person(); 等号の右側は実際のオブジェクト インスタンス、つまりヒープ メモリ内のエンティティです
には合計 3 回の new Person() があります。上の図では、ヒープ領域で 3 が開かれ、3 つのインスタンス オブジェクトが生成されます。各オブジェクトは互いに独立しており、独自の領域を使用します。PHP では、新しいキーワードが出現する限り、オブジェクトがインスタンス化されて開かれます。あなただけの空間。
ヒープ内の各インスタンス オブジェクトには属性が保存されます。たとえば、ヒープ内のインスタンス オブジェクトには姓、性別、年齢が含まれます。各属性にはアドレスがあります。
$p1=new Person(); 等号 $p1 の右側は参照変数です。オブジェクト
の最初のアドレスは、代入演算子 "=" によって参照変数 "$p1" に代入されます。 p1 は、格納されたオブジェクトの最初のアドレスです。アドレス変数 $p1 は、ヒープ内のオブジェクトを指すポインターに相当するため、参照変数 $ を通じてオブジェクトを操作できます。 p1. 通常、オブジェクト参照のことをオブジェクトとも呼びます。
6. オブジェクト内のメンバーの使用方法
上記のように、PHP オブジェクトには 2 種類のメンバーがあり、1 つはメンバー属性、もう 1 つはメンバー メソッドです。 $p1=new Person(); オブジェクトのメンバーを使用するにはどうすればよいですか?オブジェクトのメンバーにアクセスしたい場合は、
特殊演算子「->」を使用してオブジェクト メンバーへのアクセスを完了する必要があります:
Object->Properties $p1->name; ;age; $p3 ->sex;
Object->Method $p1->say(); $p2->run();
コード スニペット
上記の例では、オブジェクト内のみでメンバーにアクセスするには、「オブジェクト」->「プロパティ」および「オブジェクト」->「メソッド」を使用する必要があります。オブジェクト内のメンバーにアクセスする 2 番目の方法はありません。
上記はオブジェクト指向 PHP の完全なガイドです (2) オブジェクトのインスタンス化とオブジェクト メンバーの使用 さらに関連したコンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。