Heim >Backend-Entwicklung >PHP-Tutorial >Komplettes Tutorial zur objektorientierten PHP-Programmierung (OOP): 5. Wie instanziiere ich Objekte?

Komplettes Tutorial zur objektorientierten PHP-Programmierung (OOP): 5. Wie instanziiere ich Objekte?

WBOY
WBOYOriginal
2016-08-08 09:30:081090Durchsuche

Wir haben oben gesagt, dass die Einheit eines objektorientierten Programms ein Objekt ist, aber Objekte werden durch Klassen instanziiert. Nachdem unsere Klasse nun deklariert wurde, besteht der nächste Schritt darin, das Objekt zu instanziieren.

Nachdem wir die Klasse definiert haben, verwenden wir das Schlüsselwort new, um ein Objekt zu generieren.

$Objektname = neuer Klassenname();


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

Dieser Code ist der Prozess der Generierung von Instanzobjekten durch Klassen. Ebenso sind $p2 und $p3 die Namen der Objekte, die wir instanziieren sind alle unabhängig. Der obige Code entspricht dem Beispiel von 3 Personen. Es kann nur bedeuten, dass jeder Mensch seinen eigenen Namen, sein eigenes Geschlecht und sein eigenes Alter hat sind Möglichkeiten zum Sprechen und Gehen. Solange es sich um Mitgliedsattribute und Mitgliedsmethoden handelt, die in der Klasse widergespiegelt werden, enthält das instanziierte Objekt diese Attribute und Methoden.

Objekte in PHP sind ebenfalls Datenklassen wie Ganzzahlen und Gleitkommatypen. Sie müssen während des Betriebs in den Speicher geladen werden. Logisch gesehen ist der Speicher grob in 4 Segmente unterteilt: das Stapelraumsegment, das Heapraumsegment, das Codesegment und das initialisierte statische Segment. Verschiedene Deklarationen im Programm werden in verschiedenen Speichersegmenten platziert Speicher. Datentypen mit der gleichen Raumlänge, die wenig Platz beanspruchen, wie z. B. ganze Zahlen 1, 10, 100, 1000, 10000, 100000 usw. belegen die gleiche Länge im Speicher und sind alle 64 Bit und 4 Byte groß. Wo sollen also die Daten eines Datentyps mit variabler Länge und großem Platzbedarf in diesem Speichersegment abgelegt werden? Solche Daten werden im Heap-Speicher abgelegt. Auf den Stapelspeicher kann direkt zugegriffen werden, während auf den Heapspeicher nicht direkt zugegriffen werden kann. Bei unserem Objekt handelt es sich um einen großen Datentyp, der Platz variabler Länge einnimmt. Daher wird das Objekt im Heap abgelegt, der Objektname jedoch im Stapel, sodass das Objekt über den Objektnamen verwendet werden kann . .

$p1=neue Person();

Für diesen Code ist $p1 der Objektname im Stapelspeicher und new Person() das reale Objekt im Heapspeicher. Einzelheiten finden Sie in der folgenden Abbildung:


Wie aus dem obigen Bild hervorgeht, ist $p1=new Person(); die reale Objektinstanz im obigen Bild , also werden 3 Leerzeichen im Heap geöffnet, 3 Instanzobjekte werden generiert, jedes Objekt ist unabhängig voneinander und verwendet seinen eigenen Leerraum. Solange ein neues Schlüsselwort erscheint, wird ein Objekt instanziiert und ein eigener Leerraum wird im Heap-Bereich geöffnet.

Jedes Instanzobjekt im Heap speichert beispielsweise Attribute. Die Instanzobjekte im Heap speichern jetzt beispielsweise Name, Geschlecht und Alter. Jedes Attribut hat wiederum eine Adresse.

$p1=new Person(); Die linke Seite des Gleichheitszeichens $p1 ist eine Referenzvariable. Die erste Adresse des Objekts wird der Referenzvariablen „$p1“ über den Zuweisungsoperator „=“ zugewiesen, sodass $p1 gespeichert wird Die erste Adresse des Objekts, $p1, entspricht einem Zeiger, der auf ein Objekt im Heap zeigt, sodass wir das Objekt normalerweise auch über die Referenzvariable $p1 aufrufen können Das Objekt verweist auf ein Objekt.


Das Obige stellt das vollständige Tutorial zur objektorientierten PHP-Programmierung (OOP) vor: 5. Wie instanziiere ich ein Objekt?, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die an PHP-Tutorials interessiert sind.

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