PHPオブジェクト指向ガイド(2) オブジェクトのインスタンス化とオブジェクトメンバーの使い方_PHPチュートリアル

WBOY
リリース: 2016-07-21 15:44:06
オリジナル
785 人が閲覧しました

5. オブジェクトをインスタンス化する方法 オブジェクト指向プログラミングの単位はオブジェクトであると述べましたが、オブジェクトはクラスを介してインスタンス化されます。
クラスが宣言されるので、次のステップはオブジェクトをインスタンス化することです。
クラスを定義した後、new キーワードを使用してオブジェクトを生成します。
コードスニペット

コードをコピー コードは次のとおりです:
$Object name = new class name();
class Person{
//以下は、 person
var $name; //その人の名前
var $sex; //その人の性別
var $age; //以下はその人のメンバーメソッドです
functionsay(){
//この人の話し方
echo "この人は話している";
} function run(){
//この人の歩き方
echo "この人は歩いている";
$p1=new person( );
$p2= new Person();
$p3=new Person();

このコードは、クラス $p1 を介してインスタンス オブジェクトを生成するプロセスです。はインスタンス化するオブジェクトの名前です。同様に、$p2、
$p3 もインスタンス化するオブジェクトの名前です。クラスは複数のオブジェクトをインスタンス化でき、各オブジェクトは独立しています。上記のコードは、3 人が各インスタンスをインスタンス化することに相当します。メンバー間にはつながりはなく、それぞれが自分の名前、性別、年齢の属性を持っているということだけです。インスタンス化されたオブジェクトにはプロパティとメンバー メソッドが含まれます。
整数型や浮動小数点型などの PHP のオブジェクトも、さまざまな型のデータを保存するために使用されるデータ クラスです。
それらは実行時に使用するためにメモリにロードされる必要があるため、メモリ内のオブジェクトはどのように反映されますか?メモリは論理的に 4 つのセグメント、スタック領域セグメント、ヒープ領域セグメント、コード セグメント、および初期化静的セグメントに分割されます。スタック領域セグメントは、同じ記憶領域を占有します。整数 1、10、100、1000、10000、100000 などの長くて小さなスペースを占めるものは、メモリ内で同じ長さのスペースを占め、すべて 64 ビットと 4 ワードです。では、データ長が可変で多くのスペースを占めるデータ型は、メモリ
のそのセグメントのどこに配置されるのでしょうか?このようなデータはヒープ メモリに配置されます。スタックメモリは直接アクセスできますが、ヒープメモリは直接アクセスできないメモリです。このオブジェクトは大きなデータ型であり、可変長のスペースを占めるため、オブジェクトはヒープに配置されますが、このようにしてオブジェクト名はオブジェクト名を通じて取得できます。 . オブジェクトを使用します。
$p1=new Person();
このコードでは、$p1 はスタック メモリ内のオブジェクト名、new Person() はヒープ メモリ内の実際のオブジェクトです
、詳細については、以下の図を参照してください:

= 700) window.open('/upload/20090930215213451.gif');" src="http://www.bkjia.com/uploads/allimg/131016/09212313K-0.gif" onload="if(this.width >'700')this.width='700';if(this.height>'700')this.height='700';" border=0>


上の図からわかるように、$p1 =new Person(); 等号の右側は実際のオブジェクトのインスタンス、つまりヒープメモリ内のエンティティです
上の図では new Person() が 3 回あるため、ヒープ内に 3 つのスペースが開きます。 3 つのインスタンス オブジェクトが生成されます。各オブジェクトは互いに独立しており、PHP では独自のスペースを使用します。新しいキーワードが出現する限り、オブジェクトがインスタンス化され、ヒープ内に独自のスペースが作成されます。たとえば、ヒープ内のインスタンス オブジェクトには、姓、性別、年齢が含まれます。 $p1=new person();は参照変数です。オブジェクトの先頭アドレスは代入演算子「=」によって参照変数「$p1」に代入されます。したがって、$p1 はオブジェクトの先頭アドレスを格納する変数です。スタックメモリ、$p1 はヒープ内のオブジェクトを指すポインタと同等なので、通常、オブジェクト参照をオブジェクトと呼びます。オブジェクト内
PHP オブジェクトには 2 種類のメンバーがあり、1 つはメンバー属性、もう 1 つはメンバー メソッドです。オブジェクト内のメンバーは、オブジェクト メンバーへのアクセスを完了するために
特殊演算子 "->" を使用する必要があります。 sex;
Object->メソッド $p1->say(); $p2->run();
コードスニペット



コードは次のとおりです:

class person{
//以下は人物のメンバー属性です
var $name //人物の名前
var $sex //人物の性別
var $age; ; //その人の年齢
//以下は person のメンバーメソッドです
function Say(){ //この人の話し方
echo 「この人は話しています」
}
function run(){ //この人の歩き方
echo " この人は歩いています"
}
}
$p1=new Person() //インスタンスオブジェクトを作成 $p1
$p2=new Person(); object $p2
$p3=new Person() ; //インスタンスオブジェクト $p3 を作成します
//以下の 3 行は、$p1 オブジェクトのプロパティに値を代入します
$p1->name="Zhang San";
$p1->sex="male";
$p1- >age=20;
//次の 3 行は、$p1 オブジェクトのプロパティにアクセスするためのものです
echo "p1 の名前オブジェクトは: ".$p1->name."
";
echo "p1 オブジェクトの名前です性別は: ".$p1->sex."
";
echo "The age of the p1 object is: ".$p1->age."
";
//以下の 2 行 $p1 オブジェクトのメソッドにアクセスします
$p1->say();
$p1->run();
//次の 3 行は $p2 オブジェクトのプロパティに値を代入するものです
$p2->name=”李Four";
$p2-> sex="女性";
$p2->age=30;
//次の 3 行は $p2 オブジェクトのプロパティにアクセスするためのものです
echo "p2 オブジェクトの名前は次のとおりです:".$ p2-> ;name."
"
echo "p2 オブジェクトの性別は次のとおりです:".$p2->sex."
";
echo "p2 オブジェクトの年齢は次のとおりです:".$ p2 ->age.”
”;
//次の 2 行は $p2 オブジェクトのメソッドにアクセスします
$p2->say();
$p2->run(); /以下の3行 $p3 オブジェクトの属性に値を代入する行です
$p3->name="王五";
$p3-> age=40;
//次の 3 行は $p3 オブジェクトのプロパティにアクセスします
echo "The name of the p3 object is: ".$p3->name."
"; p3 オブジェクトの性別は次のとおりです: ".$p3->sex."
";
echo "p3 オブジェクトの年齢は次のとおりです: ".$p3->age."
" ;
//次の 2 行は $p3 オブジェクトのメソッドにアクセスします
$p3->run();

;たとえば、object->properties および object->method を使用してオブジェクト内のメンバーにのみアクセスする必要がある場合、オブジェクトのメンバーにアクセスする 2 番目の方法はありません。



http://www.bkjia.com/PHPjc/320656.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/320656.html技術記事 5. オブジェクトをインスタンス化する方法 オブジェクト指向プログラムの単位はオブジェクトであると述べましたが、クラスを介してオブジェクトがインスタンス化されるので、次のステップはインスタンス化です...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート