Heim  >  Artikel  >  Backend-Entwicklung  >  Objektorientierter PHP-Leitfaden (2) Instanziieren von Objekten und Verwenden von Objektmitgliedern

Objektorientierter PHP-Leitfaden (2) Instanziieren von Objekten und Verwenden von Objektmitgliedern

黄舟
黄舟Original
2016-12-19 13:43:351048Durchsuche

5. Wie man Objekte instanziiert
Wir haben oben gesagt, dass die Einheit eines objektorientierten Programms ein Objekt ist, aber Objekte werden durch Klassen instanziiert. Da
unsere Klasse deklariert wird, besteht der nächste Schritt darin Objekt instanziieren.
Nachdem wir die Klasse definiert haben, verwenden wir das Schlüsselwort new, um ein Objekt zu generieren.
Codeausschnitt

$对象名称= new 类名称(); 
<?php 
class Person{ 
//下面是人的成员属性 
var $name; //人的名字 
var $sex; //人的性别 
var $age; //人的年龄 
//下面是人的成员方法 
function say(){ 
//这个人可以说话的方法 
echo "这个人在说话"; 
} function run(){ 
//这个人可以走路的方法 
echo "这个人在走路"; 
} 
} 
$p1=new Person(); 
$p2=new Person(); 
$p3=new Person(); 
?> 
$p1=new Person();

Dieser Code ist der Prozess der Generierung von Instanzobjekten durch Klassen. $p1 ist der Name des Objekts, das wir instanziieren. Ebenso sind $p2 und
$p3 unser Instanzen Der Name des ausgegebenen Objekts, eine Klasse kann mehrere Objekte instanziieren, jedes Objekt ist unabhängig, der obige Code entspricht der Instanziierung von 3 Personen, es gibt keine Verbindung zwischen jeder Person, er kann nur zeigen, dass sie alle sind Jeder Mensch hat seine eigenen Namens-, Geschlechts- und Altersattribute. Solange es sich um ein Mitgliedsattribut und eine Mitgliedsmethode handelt, kann es instanziiert werden enthält diese Eigenschaften und Methoden.
Objekte in PHP, wie Ganzzahlen und Gleitkommatypen, sind ebenfalls Datenklassen, die zum Speichern verschiedener Datentypen verwendet werden.
Sie müssen zur Laufzeit in den Speicher geladen werden, sodass Objekte sich im Speicher widerspiegeln ? Der Speicher ist logischerweise in 4 Segmente unterteilt: das Stapelspeichersegment, das Heapspeichersegment, das Codesegment und das statische Initialisierungssegment. Verschiedene Deklarationen im Programm
werden in verschiedenen Speichersegmenten und im Stapelspeicher platziert segment Es ist ein Ort zum Speichern von Datentypen, die dieselbe Raumlänge und wenig Platz einnehmen
, wie z. B. ganze Zahlen 1, 10, 100, 1000, 10000, 100000 usw. Der im Speicher belegte Platz ist derselbe Länge,
Beide sind 64 Bit und 4 Byte. Was ist also mit dem Datentyp, dessen Datenlänge nicht festgelegt ist, viel Platz einnimmt und im Speichersegment
abgelegt wird? Solche Daten werden im Heap-Speicher abgelegt. Auf den Stapelspeicher kann direkt zugegriffen werden, während der Heap-Speicher
Speicher ist, auf den nicht direkt zugegriffen werden kann. Unser Objekt ist ein großer Datentyp und nimmt eine variable Länge an Speicherplatz
ein, sodass das Objekt im Heap platziert wird, der Objektname jedoch im Stapel platziert wird, sodass der Objektname lautet: Das Objekt ist
bereit zur Verwendung.
$p1=new Person();
Für diesen Code ist $p1 der Objektname im Stapelspeicher, new Person() ist das reale Objekt im Heapspeicher
, bitte angeben Schauen Sie sich das an Bild unten:

Wie Sie auf dem Bild oben sehen können, ist $p1=new Person(); die rechte Seite des Gleichheitszeichens ist die reale Objektinstanz, die Entität im Heapspeicher Im Bild oben sind 3 neue Zeiten zu sehen, daher werden 3 Leerzeichen im Heap geöffnet und jedes Objekt
ist unabhängig voneinander und verwendet in PHP seinen eigenen Leerraum Da es ein neues Schlüsselwort gibt, instanziiert
ein Objekt und öffnet seinen eigenen Platz im Heap.
Jedes Instanzobjekt im Heap speichert beispielsweise Attribute: Nachname
, Geschlecht und Alter. Jedes Attribut hat wiederum eine Adresse.
$p1=new Person(); Die rechte Seite des Gleichheitszeichens $p1 ist eine Referenzvariable. Die erste Adresse des Objekts
wird über den Zuweisungsoperator „=“ zugewiesen ", also $p1 Es ist eine Variable, die die erste Adresse des Objekts speichert. $p1 wird im Stapelspeicher abgelegt. $p1 entspricht einem Zeiger, der auf das Objekt im Heap zeigt, sodass wir das Objekt über bedienen können Referenzvariable $p1. Normalerweise
nennen wir eine Objektreferenz ein Objekt.
6. So verwenden Sie die Mitglieder im Objekt
Wie oben gesehen, gibt es zwei Arten von Mitgliedern im PHP-Objekt, eines ist das Mitgliedsattribut und das andere ist die Mitgliedsmethode. Wir können das Objekt mit
, $p1=new Person(); deklarieren. Wie werden die Mitglieder des Objekts verwendet? Wenn Sie auf die Mitglieder des Objekts zugreifen möchten, müssen Sie einen
speziellen Operator „->“ verwenden, um den Zugriff auf die Objektmitglieder abzuschließen:
Object-> p2-> Alter;
Objekt->Methode $p2->run();
Codeausschnitt


Aus dem obigen Beispiel geht hervor, dass nur auf die Mitglieder im Objekt mit den Methoden object->properties und object-> zugegriffen werden muss.
Es gibt keine Sekunde Methode für den Zugriff auf die Mitglieder im Objekt.

Das Obige ist der objektorientierte PHP-Leitfaden (2) Instanziieren von Objekten und Verwenden von Objektmitgliedern. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!

<?php 
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(); //创建实例对象$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>”; 
echo “p3对象的年龄是:”.$p3->age.”<br>”; 
//下面两行访问$p3对象中的方法 
$p3->say(); 
$p3->run(); 
?>

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