ホームページ >バックエンド開発 >PHPチュートリアル >phpオブジェクト指向チュートリアル3
5. オブジェクトをインスタンス化する方法
オブジェクト指向プログラムの単位はオブジェクトであると述べましたが、クラス
を宣言するので、次のステップはオブジェクトをインスタンス化することです。
クラスを定義した後、new キーワードを使用してオブジェクトを生成します。
$对象名称= new 类名称(); <?php class Person { //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say() //这个人可以说话的方法 { echo "这个人在说话"; }f unction run() //这个人可以走路的方法 { echo "这个人在走路"; } } $p1=new Person(); $p2=new Person(); $p3=new Person(); ?> $p1=new Person();
このコードは、クラスを通じてインスタンスオブジェクトを生成するプロセスです。$p1 は、インスタンス化するオブジェクトの名前です。同様に、$p2、$p3
も、1 つのクラスで複数のインスタンスを生成できます。オブジェクト、各オブジェクトは独立しています。上記のコードは 3 人の人の例に相当します。これは、各人が独自の姓と属性を持っていることを意味します。メンバー属性とメンバー メソッドがクラスに反映されている限り、インスタンス化されたオブジェクトにはこれらの属性とメソッドが含まれます。
整数型や浮動小数点型などの PHP のオブジェクトも、さまざまな種類のデータを格納するために使用されます。
実行時に使用するためにメモリにロードする必要があります。そのため、メモリ内のオブジェクトは次のようになります。反映されましたか?論理的に言えば、メモリは通常、スタック領域セグメント、ヒープ領域セグメント、コード セグメント、および初期化静的セグメントの 4 つのセグメントに分割され、スタック領域セグメントは同じ記憶領域を占有します。整数 1、10、
100、1000、10000、100000 など、長いスペースを持ち、小さなスペースを占有する型は、メモリ内で同じ長さのスペースを占有し、すべて 64 ビットと 4 バイトです。それでは、可変長で多くのスペースを占めるデータ型のデータは、メモリのどのセグメントに配置すべきでしょうか?このようなデータは
ヒープ メモリに配置されます。スタック メモリには直接アクセスできますが、ヒープ メモリには直接アクセスできません。このオブジェクトの場合、数値は大きなデータ型であり、可変長のスペースを占めるため、オブジェクトはヒープに配置されますが、オブジェクト名はスタックに配置されるため、オブジェクト名を通じて取得できます。オブジェクトを使用します。
$p1=new Person();
Object->Method $p1->say(); $p2->run();
次の例のように:
<?php class Person { //下面是人的成员属性 var $name; //人的名字 var $sex; //人的性别 var $age; //人的年龄 //下面是人的成员方法 function say() //这个人可以说话的方法 { echo "这个人在说话"; }f unction run() //这个人可以走路的方法 { echo "这个人在走路"; } } $p1=new Person(); //创建实例对象$p1 $p2=new Person(); //创建实例对象$p2 $p3=new Person(); //创建实例对象$p3 //下面三行是给$p1对象属性赋值 $p1->name=”张三”; $p1->sex=”男”; $p1->age=20; //下面三行是访问$p1对象的属性 echo “p1对象的名字是:”.$p1->name.”<br>”; echo “p1对象的性别是:”.$p1->sex.”<br>”; echo “p1对象的年龄是:”.$p1->age.”<br>”; //下面两行访问$p1对象中的方法 $p1->say(); $p1->run(); //下面三行是给$p2对象属性赋值 $p2->name=”李四”; $p2->sex=”女”; $p2->age=30; //下面三行是访问$p2对象的属性 echo “p2对象的名字是:”.$p2->name.”<br>”; echo “p2对象的性别是:”.$p2->sex.”<br>”; echo “p2对象的年龄是:”.$p2->age.”<br>”; //下面两行访问$p2对象中的方法 $p2->say(); $p2->run(); //下面三行是给$p3对象属性赋值 $p3->name=”王五”; $p3->sex=”男”; $p3->age=40; //下面三行是访问$p3对象的属性 echo “p3对象的名字是:”.$p3->name.”<br>”; echo “p3对象的性别是:”.$p3->sex.”<br>”; LAMP 大讲堂PHP 面向对象技术(全面讲解) echo “p3对象的年龄是:”.$p3->age.”<br>”; //下面两行访问$p3对象中的方法 $p3->say(); $p3->run(); ?>