ホームページ >バックエンド開発 >PHPチュートリアル >php オブジェクト指向 (OOP) - オブジェクトのインスタンス化

php オブジェクト指向 (OOP) - オブジェクトのインスタンス化

WBOY
WBOYオリジナル
2016-08-08 09:23:131110ブラウズ

$Object name = new Class name();

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();

このコードは、クラスを通じてインスタンス オブジェクトを生成するプロセスです。$p1 は、インスタンス化するオブジェクトの名前です。同様に、$p2、$p3 もインスタンス化するオブジェクトの名前であり、それぞれのオブジェクトは独立しています。それぞれが自分の名前、性別、年齢の属性を持ち、それがクラスに反映される限り、それは彼ら全員が人間であることを示すことができます。インスタンス化されたオブジェクトには、次のプロパティとメソッドが含まれます。

PHP のオブジェクト (整数型や浮動小数点型など) もデータ クラスです。これらは、実行時に使用するためにメモリにロードされる必要があります。反映されましたか?論理的に言えば、メモリはスタック領域セグメント、ヒープ領域セグメント、コード領域、初期化された静的セグメントの 4 つのセグメントに分けられ、プログラム内の異なる宣言は異なるメモリ領域に配置されます。整数 1、10、100、1000 など、同じスペース長で占有スペースが小さいデータ型。 10000、100000 などはメモリ内で同じ長さのスペースを占有し、それらはすべて 64 ビットおよび 4 バイトです。 では、データ長が可変で多くのスペースを占めるデータ型のデータは、そのメモリセグメントのどこに配置すればよいのでしょうか?このようなデータはヒープ メモリに配置されます。スタック メモリには直接アクセスできますが、ヒープ メモリには直接アクセスできません。このオブジェクトの場合、それは大きなデータ型であり、可変長の領域を占有するため、オブジェクトはヒープに配置されますが、オブジェクト名はスタックに配置されるため、オブジェクトはオブジェクト名を通じて使用できます。 。

$p1=new Person();

このコードでは、$p1 はスタック メモリ内のオブジェクト名で、new Person() はヒープ メモリ内の実際のオブジェクトです。詳細については、以下の図を参照してください。

php オブジェクト指向 (OOP) - オブジェクトのインスタンス化

上の図から分かるように、$p1=new Person(); は、ヒープメモリ内の実際のオブジェクトのインスタンスです。 ) 上の図では、ヒープ内に存在します。PHP では、新しいキーワードが出現する限り、3 つのスペースが開かれ、それぞれのオブジェクトが独自のスペースを使用します。オブジェクトがインスタンス化され、ヒープ上に配置されます。内部に独自のスペースを作成します。

ヒープ内の各インスタンス オブジェクトは属性を保存します。たとえば、ヒープ内のすべてのインスタンス オブジェクトには名前、性別、年齢が保存されます。各属性にはアドレスがあります。

$p1=new Person();等号の左側の$p1は参照変数です。オブジェクトの先頭アドレスは代入演算子「=」を介して参照変数「$p1」に代入されます。 $p1 は、格納されたオブジェクトの最初のアドレスです。アドレス変数 $p1 は、ヒープ内のオブジェクトを指すポインターに相当するため、参照変数を通じてオブジェクトを操作できます。 $p1。通常、オブジェクト参照もオブジェクトと呼びます。

上記の内容はブラザー「リトル・フライド・ピーナッツ」から引用したものです。共有していただきありがとうございます。

上記では、PHP オブジェクト指向 (OOP) でインスタンス化されたオブジェクトをその側面も含めて紹介しましたが、PHP チュートリアルに興味のある友人にとって役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。