Aktueller Standort: Startseite> Neueste Artikel> Wie bekomme ich den Namen der Elternklassen eines Objekts über get_class? Detaillierte Schritte und Beispielanalysen

Wie bekomme ich den Namen der Elternklassen eines Objekts über get_class? Detaillierte Schritte und Beispielanalysen

gitbox 2025-10-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Vorwort(Hat nichts mit dem Thema des Artikels zu tun)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Dies ist ein Beispiel -Vorwort,Kann jeder veranschaulichende Text oder eine Programmausgabe sein。&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Das Folgende wird durch horizontale Linien vom Inhalt des Textes getrennt.。&lt;hr&gt;"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Starten Sie den Text</span></span><span>
<span class="hljs-comment">/*
Titel: Wie man passtget_classHolen Sie sich den Namen der Elternklassen des Objekts?Detaillierte Schritte und Beispielanalysen

existierenPHPIn der Entwicklung,Wir müssen oft die Informationen der Klasse oder über die Klassenklassen beurteilen, zu denen ein Objekt gehört.,Für Typurteil、Dynamisch Methoden aufrufen oder debuggen。In diesem Artikel wird vorgestellt, wie man ihn ausführlich verwendetPHPvonget_class函数和相关方法Holen Sie sich den Namen der Elternklassen des Objekts,Und helfen bei der Instanzanalyse zu verstehen。
*/</span>

</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Animal</span></span><span> {
    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">makeSound</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Some generic sound"</span></span><span>;
    }
}

</span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">Dog</span></span><span> </span><span><span class="hljs-keyword">extends</span></span><span> </span><span><span class="hljs-title">Animal</span></span><span> {
    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">makeSound</span></span><span>(</span><span><span class="hljs-params"></span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-string">"Bark"</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// Erstellen aDogObjekt</span></span><span>
</span><span><span class="hljs-variable">$dog</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">Dog</span></span><span>();

</span><span><span class="hljs-comment">// Erster Schritt:获取Objektvon类名</span></span><span>
</span><span><span class="hljs-variable">$className</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_class</span></span><span>(</span><span><span class="hljs-variable">$dog</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Objekt所属类名: "</span></span><span> . </span><span><span class="hljs-variable">$className</span></span><span> . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe Dog</span></span><span>

</span><span><span class="hljs-comment">// Schritt 2:Holen Sie sich den Namen der Elternklassen des Objekts</span></span><span>
</span><span><span class="hljs-variable">$parentClassName</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_parent_class</span></span><span>(</span><span><span class="hljs-variable">$dog</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Objekt父类名: "</span></span><span> . </span><span><span class="hljs-variable">$parentClassName</span></span><span> . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe Animal</span></span><span>

</span><span><span class="hljs-comment">// Schritt 3:Verwenden Sie übergeordnete Informationen anhand von Bedingungen</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$parentClassName</span></span><span> === </span><span><span class="hljs-string">'Animal'</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"该Objekt是Animal类von子类,Kann aufgerufen werdenAnimal中定义von方法。&lt;br&gt;"</span></span><span>;
}

</span><span><span class="hljs-comment">// Schritt 4:Weitere Anwendung——Erhalten Sie die Methodenliste durch Reflexion des Namens der Elternklassen</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$parentClassName</span></span><span>) {
    </span><span><span class="hljs-variable">$methods</span></span><span> = </span><span><span class="hljs-title function_ invoke__">get_class_methods</span></span><span>(</span><span><span class="hljs-variable">$parentClassName</span></span><span>);
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Liste der übergeordneten Klassenmethoden: &lt;br&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;ul&gt;"</span></span><span>;
    </span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$methods</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$method</span></span><span>) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;li&gt;"</span></span><span> . </span><span><span class="hljs-variable">$method</span></span><span> . </span><span><span class="hljs-string">"&lt;/li&gt;"</span></span><span>;
    }
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"&lt;/ul&gt;"</span></span><span>;
}

<span class="hljs-comment">/*
Analyse und Zusammenfassung:

1. get_class() 函数用于获取Objekt所属von当前类名。
2. get_parent_class() 函数用于获取Objektvon直接父类名,Wenn es keine Elternklasse gibt, kehren Sie zurück false。
3. Nach Namen der Elternklasse,Wir können es weiter benutzen PHP von反射函数(wie get_class_methods)获取父类von方法信息。
4. Diese Methode eignet sich zum Debuggen、动态调用方法以及构建面向Objektvon工具类oder框架。

Dinge zu beachten:

- get_parent_class() Geben Sie nur die direkte Elternklasse zurück,不会返回祖父类oder更高级别von父类。
- wie果需要判断Objekt是否继承自某个特定类,Kann auch verwendet werden `is_a($object, 'ClassName')` oder `instanceof` Operator。
*/</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>