Objektorientiert ist eine Programmieridee, die nichts mit bestimmten Sprachen zu tun hat. C, Java, JavaScript und PHP können alle objektorientierte Entwicklung mit ihren eigenen Stilen durchführen
Eine Klasse ist eine Zusammenfassung der Attribute und Verhaltensweisen einer Art von Sache. Zunächst müssen wir darüber nachdenken, was passieren würde, wenn es keine Klassen gäbe. Angenommen, wir möchten ein gewöhnliches Fahrrad darstellen, denken wir über die Anzahl der Räder, 2, und den Preis nach ... Dann möchten wir ein Fahrrad darstellen, das ein Kind fahren kann, und wir werden über die Anzahl der Räder nachdenken, 4 und der Preis ... Solange es ein Fahrrad gibt, werden wir alle darüber nachdenken, was es haben sollte. Das Attribut „Anzahl der Räder“ wird auch das Attribut „Preis“ haben ... wie viele Typen Bei vielen Fahrrädern müssen wir darüber nachdenken, welche Eigenschaften sie haben und wie viele Funktionen sie haben
<strong>array</strong>(<strong>'</strong><strong>名字</strong><strong>'</strong>=><strong>'</strong><strong>普通自行车</strong><strong>'</strong>,<strong>'</strong><strong>轮子数量</strong><strong>'</strong>=>2,<strong>'</strong><strong>价格</strong><strong>'</strong>=><strong>'...'</strong>);<br> <strong>array</strong>(<strong>'</strong><strong>名字</strong><strong>'</strong>=><strong>'</strong><strong>儿童自行车</strong><strong>'</strong>,<strong>'</strong><strong>轮子数量</strong><strong>'</strong>=>4,<strong>'</strong><strong>价格</strong><strong>'</strong>=><strong>'...'</strong>);
Was ist, wenn wir Kurse haben? Nehmen wir an, wir haben einen Fahrradkurs:
<strong>class </strong>自行车{<br> <strong>public </strong><strong>$</strong><strong>名字</strong>;<br> <strong>public </strong><strong>$</strong><strong>轮子数量</strong>;<br> <strong>public </strong><strong>$</strong><strong>价格</strong>;<br> <strong>public function </strong>骑(){<br> <strong>echo </strong><strong>'</strong><strong>骑</strong><strong>'</strong>.$this-><strong>名字</strong>;<br> }<br> }
$自行车对象1=<strong>new </strong>自行车();<br> $自行车对象1-><strong>名字</strong>=<strong>'</strong><strong>普通自行车</strong><strong>'</strong>;<br> $自行车对象1-><strong>轮子数量</strong>=2;<br> <br> $自行车对象2=<strong>new </strong>自行车();<br> $自行车对象2-><strong>名字</strong>=<strong>'</strong><strong>儿童自行车</strong><strong>'</strong>;<br> $自行车对象2-><strong>轮子数量</strong>=4;
Jetzt tritt das Problem erneut auf. Es kann viele instanziierte Objekte einer Klasse geben.
Unterschiedlich durch unterschiedliche Werte desselben Attributs.
Zum Beispiel sind der Name von Objekt 1 und der Name von Objekt 2 unterschiedlich, und auch die Anzahl der Räder ist unterschiedlich
Die Frage stellt sich erneut: Können wir Methoden zur Unterscheidung verwenden?
Kann nicht
In PHP teilen sich alle Objekte Klassenmethoden. Das heißt, solange das Objekt eine Methode verwendet, wird diese Methode von der Klasse übernommen, und das Objekt selbst hat sie nicht Weisen Sie Attributen Werte zu. Dies dient lediglich der Unterscheidung von anderen Objekten.
Objekte und Arrays:
Objekt: Attributname = Attributwert
Array:key=>value
Die Strukturen von Arrays und Objekten in PHP sind nach der Serialisierung sehr ähnlich, wie in der Abbildung gezeigt:
Die zweite Zeile ist das Serialisierungsergebnis des Objekts. Sie können sehen, dass vor dem Serialisierungsergebnis des Objekts drei Wörter stehen Der Grund, warum Sie die Methodeninformationen im Serialisierungsergebnis nicht sehen können, liegt darin, dass die Methode nach der Deserialisierung über die Informationen von „Fahrrad“ gefunden werden kann. und rufen Sie dann die Methode in der Klasse auf.