ホームページ >バックエンド開発 >PHPチュートリアル >php オブジェクト指向 (OOP) - オブジェクトのインスタンス化
$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() はヒープ メモリ内の実際のオブジェクトです。詳細については、以下の図を参照してください。