ホームページ > php教程 > php手册 > PHP オブジェクト指向ガイド (2) オブジェクトのインスタンス化とオブジェクト メンバーの使用

PHP オブジェクト指向ガイド (2) オブジェクトのインスタンス化とオブジェクト メンバーの使用

WBOY
リリース: 2016-06-13 12:21:31
オリジナル
910 人が閲覧しました

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

コードをコピー コードは次のとおりです。


$object name = new class name();
class person{
//以下は人物のメンバー属性です
var $name //人物の名前
var $sex;人の性別
var $ age; //人の年齢
//人のメンバーメソッドは次のとおりです
function Say(){
//この人が話すことができるメソッド
echo "この人は話しています";
} function run(){
//この人はどのように歩くことができます
echo "この人は歩いています";
}
$p1=新しい人();
$p3=新しい人();
$p1=新しい人(); 🎜>

このコードは、クラスを通じてインスタンス オブジェクトを生成するプロセスで、$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>


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

🎜>
コードをコピーします

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


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


オブジェクト内のメンバーはオブジェクト属性を使用する必要があり、オブジェクトにはメソッドの形式でアクセスします。
オブジェクト内のメンバーにアクセスする 2 番目の方法はありません。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート