Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Objektorientiertes Tutorial 4

PHP-Objektorientiertes Tutorial 4

黄舟
黄舟Original
2016-12-29 10:55:251045Durchsuche

7. Die Verwendung der speziellen Referenz „$this“
Jetzt wissen wir, wie auf Mitglieder im Objekt zugegriffen wird, auf das über die Methode „object->member“ zugegriffen wird, die sich außerhalb des Objekts befindet
das Formular, um auf die Mitglieder des Objekts zuzugreifen, wenn ich dann den Methoden im Objekt den Zugriff auf die Eigenschaften dieses Objekts innerhalb des Objekts ermöglichen möchte, oder
ist die Methode im Objekt, um andere Methoden dieses Objekts aufzurufen, dann Wie kommen wir zurecht? Da alle Mitglieder im Objekt mithilfe des
-Objekts aufgerufen werden müssen, einschließlich Aufrufen zwischen internen Mitgliedern des Objekts, stellt mir PHP eine Referenz auf dieses Objekt $this zur Verfügung.
Für jedes Objekt gibt es eine Objektreferenz $this um das Objekt darzustellen und den Aufruf der internen Mitglieder des Objekts abzuschließen. Die ursprüngliche Bedeutung davon ist
„this“. Im obigen Beispiel instanziieren wir jeweils drei Instanzobjekte $P1, $ P2, $P3 Diese drei Objekte
haben ihr eigenes $this, das jeweils die Objekte $p1, $p2 und $p3 darstellt.
Aus der obigen Abbildung können wir ersehen, dass $this die Referenz ist, die das Objekt innerhalb des Objekts darstellt. Die gleiche Methode wird verwendet, um die
-Mitglieder dieses Objekts innerhalb des Objekts und die Mitglieder des Objekts außerhalb des Objekts aufzurufen Objekt.

$this->属性$this->name; $this->age; $this->sex;
$this->方法$this->say(); $this->run();

Ändern Sie das obige Beispiel so, dass jeder seinen Namen, sein Geschlecht und sein Alter sagen kann:

<?php
class Person
{
//下面是人的成员属性
var $name; //人的名字
var $sex; //人的性别
var $age; //人的年龄
//下面是人的成员方法
function say() //这个人可以说话的方法
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}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对象中的说话方法
$p1->say();
//下面三行是给$p2对象属性赋值
$p2->name="李四";
$p2->sex="女";
$p2->age=30;
//下面访问$p2对象中的说话方法
$p2->say();
//下面三行是给$p3对象属性赋值
$p3->name="王五";
$p3->sex="男";
$p3->age=40;
//下面访问$p3对象中的说话方法
$p3->say();
?>

Das Ausgabeergebnis ist:

我的名字叫:张三性别:男我的年龄是:20
我的名字叫:李四性别:女我的年龄是:30
我的名字叫:王五性别:男我的年龄是:40

Analysieren Sie diese Methode:

function say() //这个人可以说话的方法
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}

Es gibt eine say()-Methode in den drei Objekten $p1, $p2 und $p3, $ diese repräsentiert jeweils diese drei Objekte . Rufen Sie das entsprechende
-Attribut auf und geben Sie den Wert des Attributs aus. Auf diese Weise können Sie auf die Attribute des Objekts innerhalb des Objekts zugreifen. Wenn Sie
in der Methode say() aufrufen, verwenden Sie run() Auch möglich. Verwenden Sie $this->run() in der say()-Methode, um den Aufruf abzuschließen.
8. Konstruktor- und Destruktormethoden
Die meisten Klassen verfügen über eine spezielle Methode namens Konstruktor. Wenn ein Objekt erstellt wird, ruft es automatisch den Konstruktor auf. Wenn also das Schlüsselwort new zum Instanziieren des Objekts verwendet wird, wird der Konstruktor automatisch aufgerufen.
Die Deklaration eines Konstruktors ist dieselbe wie die Deklaration anderer Operationen, außer dass sein Name __construct() sein muss. Dies ist eine Änderung in PHP5.
In früheren Versionen muss der Name des Konstruktors mit dem Klassennamen identisch sein. Dies kann jedoch jetzt nur noch von sehr wenigen
Benutzern verwendet werden Der Vorteil besteht darin, dass der Konstruktor vom Klassennamen unabhängig gemacht werden kann. Wenn sich der Klassenname ändert, muss der entsprechende Konstruktor-
-Name nicht geändert werden. Wenn es in einer Klasse keine Methode namens __construct() gibt, sucht PHP aus Gründen der Abwärtskompatibilität nach einer
-Methode in PHP4, einer Konstruktormethode mit demselben Namen wie der Klassenname.
Format:

function __construct ( [参数] ) { ... ... }
In einer Klasse kann nur ein Konstruktor deklariert werden, aber der Konstruktor wird bei jeder Erstellung eines Objekts nur einmal aufgerufen.

Dies kann nicht als aktive Methode bezeichnet werden Es wird normalerweise verwendet, um einige nützliche Initialisierungsaufgaben auszuführen. Beispielsweise werden den gepaarten Attributen beim Erstellen des
des Objekts Anfangswerte zugewiesen.

<?
//创建一个人类
class Person
{
//下面是人的成员属性
var $name; //人的名字
var $sex; //人的性别
var $age; //人的年龄
//定义一个构造方法参数为姓名$name、性别$sex和年龄$age
function __construct($name, $sex, $age)
{
//通过构造方法传进来的$name给成员属性$this->name赋初使值
$this->name=$name;
//通过构造方法传进来的$sex给成员属性$this->sex赋初使值
$this->sex=$sex;
//通过构造方法传进来的$age给成员属性$this->age赋初使值
$this->age=$age;
}/
/这个人的说话方法
function say()
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}
}
//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=new Person(“张三”,”男”, 20);
$p2=new Person(“李四”,”女”, 30);
$p3=new Person(“王五”,”男”, 40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
?>
Das Ausgabeergebnis ist:


我的名字叫:张三性别:男我的年龄是:20
我的名字叫:李四性别:女我的年龄是:30
我的名字叫:王五性别:男我的年龄是:40

Destruktor:
Das Gegenteil des Konstruktors ist der Destruktor. Der Destruktor ist ein neu hinzugefügter Inhalt von PHP5. In PHP4 gibt es keinen Destruktor.
Mit dem Destruktor können Sie einige Vorgänge ausführen oder einige Funktionen abschließen, bevor Sie eine Klasse zerstören, z. B. Dateien schließen, Ergebnismengen freigeben usw.
Der Destruktor löscht alle Verweise auf ein Objekt oder wird ausgeführt, wenn das Objekt explizit ist zerstört, das heißt, der Destruktor wird aufgerufen, bevor das Objekt
im Speicher zerstört wird. Ähnlich wie der Name des Konstruktors muss der Name des Destruktors einer Klasse __destruct() lauten. Die Destruktorfunktion
kann keine Parameter annehmen.
Format:

function __destruct ( ) { ... ... }
<?
//创建一个人类
class Person
{
//下面是人的成员属性
var $name; //人的名字
var $sex; //人的性别
var $age; //人的年龄
//定义一个构造方法参数为姓名$name、性别$sex和年龄$age
function __construct($name, $sex, $age)
{
//通过构造方法传进来的$name给成员属性$this->name赋初使值
$this->name=$name;
//通过构造方法传进来的$sex给成员属性$this->sex赋初使值
$this->sex=$sex;
//通过构造方法传进来的$age给成员属性$this->age赋初使值
$this->age=$age;
}
//这个人的说话方法
function say()
{
echo "我的名字叫:".$this->name." 性别:".$this->sex." 我的年龄是:
".$this->age."<br>";
}
//这是一个析构函数,在对象销毁前调用
function __destruct()
{
echo “再见”.$this->name.”<br>”;
}
//通过构造方法创建3个对象$p1、p2、$p3,分别传入三个不同的实参为姓名、性别和年龄
$p1=new Person(“张三”,”男”, 20);
$p2=new Person(“李四”,”女”, 30);
$p3=new Person(“王五”,”男”, 40);
//下面访问$p1对象中的说话方法
$p1->say();
//下面访问$p2对象中的说话方法
$p2->say();
//下面访问$p3对象中的说话方法
$p3->say();
?>
Das Ausgabeergebnis ist:


我的名字叫:张三性别:男我的年龄是:20
我的名字叫:李四性别:女我的年龄是:30
我的名字叫:王五性别:男我的年龄是:40
再见张三
再见李四
再见王五
Das Obige ist der Inhalt des objektorientierten PHP-Tutorials 4. Weitere Informationen Inhalt, achten Sie bitte auf die chinesische PHP-Website (www.php.cn)!



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn