ホームページ  >  記事  >  バックエンド開発  >  phpオブジェクト指向チュートリアル3

phpオブジェクト指向チュートリアル3

黄舟
黄舟オリジナル
2016-12-29 10:52:581026ブラウズ

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

、詳細については、以下の図を参照してください:
上の図からわかるように、等号の右側は実際のオブジェクト インスタンス、つまりヒープ メモリ内のエンティティです。上の図には 3 つあります
new Person() 回なので、ヒープ内に 3 つのスペースが開かれ、PHP ではそれぞれのオブジェクトが独立して独自のスペースを使用します。新しいキーがあるため、単語が出現すると、オブジェクトがインスタンス化され、ヒープ内に独自のスペースが作成されます。
ヒープ内の各インスタンス オブジェクトには属性が保存されます。たとえば、ヒープ内のインスタンス オブジェクトには名前、性別、年齢が保存されます。各属性にはアドレスがあります。
$p1=new Person(); 等号 $p1 の右側は参照変数です。代入演算子 "=" によってオブジェクトの最初のアドレスが参照変数 "$p1" に代入されます。は、格納されたオブジェクトの最初のアドレスです。アドレス変数 $p1 は、ヒープ内のオブジェクトを指すポインターに相当するため、参照変数 $p1 を通じてオブジェクトを操作できます。 . 通常、オブジェクト参照
もオブジェクトと呼びます。
6. オブジェクト内のメンバーの使い方

上で見たように、PHP オブジェクトには 2 種類のメンバーがあり、1 つはメンバー属性、もう 1 つはメンバーメソッドです。 $p1=new Person(); オブジェクトのメンバーを使用する方法を説明します。オブジェクトのメンバーにアクセスしたい場合は、特殊な演算子「->」を使用してオブジェクト メンバーへのアクセスを完了する必要があります。 $ p3->sex;

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

上記の例からわかるように、オブジェクト内でのみメンバーにアクセスする必要があります。オブジェクト内のメンバーにアクセスする 2 番目の方法はありません。上記は PHP オブジェクト指向チュートリアル 3 の内容です。コンテンツについては、PHP 中国語 Web サイト (www.php.cn) を参照してください。




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