<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Préface(N'a rien à voir avec le sujet de l'article)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Ceci est un exemple de préface,Peut être n'importe quel texte illustratif ou sortie de programme。<br>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Les éléments suivants seront séparés du contenu du texte par des lignes horizontales.。<hr>"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Démarrer le texte</span></span><span>
<span class="hljs-comment">/*
titre: Comment passerget_classObtenez le nom de classe parent de l'objet?Étapes détaillées et analyse des exemples
existerPHPEn cours de développement,Nous devons souvent juger les informations de classe ou de classe parent auxquelles appartient un objet.,Pour le jugement de type、Appeler des méthodes ou débogage dynamiquement。Cet article présentera comment l'utiliser en détailPHPdeget_class函数和相关方法Obtenez le nom de classe parent de l'objet,Et aider à comprendre à travers l'analyse des instances。
*/</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">// Créer unDogObjet</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">// premier pas:获取Objetde类名</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">"Objet所属类名: "</span></span><span> . </span><span><span class="hljs-variable">$className</span></span><span> . </span><span><span class="hljs-string">"<br>"</span></span><span>; </span><span><span class="hljs-comment">// Sortir Dog</span></span><span>
</span><span><span class="hljs-comment">// Étape 2:Obtenez le nom de classe parent de l'objet</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">"Objet父类名: "</span></span><span> . </span><span><span class="hljs-variable">$parentClassName</span></span><span> . </span><span><span class="hljs-string">"<br>"</span></span><span>; </span><span><span class="hljs-comment">// Sortir Animal</span></span><span>
</span><span><span class="hljs-comment">// Étape 3:Utilisez des informations sur les parents en fonction des conditions</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">"该Objet是Animal类de子类,Peut être appeléAnimal中定义de方法。<br>"</span></span><span>;
}
</span><span><span class="hljs-comment">// Étape 4:Application supplémentaire——Obtenez la liste des méthodes par réflexion du nom de classe parent</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 des méthodes de classe parent: <br>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<ul>"</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">"<li>"</span></span><span> . </span><span><span class="hljs-variable">$method</span></span><span> . </span><span><span class="hljs-string">"</li>"</span></span><span>;
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"</ul>"</span></span><span>;
}
<span class="hljs-comment">/*
Analyse et résumé:
1. get_class() 函数用于获取Objet所属de当前类名。
2. get_parent_class() 函数用于获取Objetde直接父类名,S'il n'y a pas de classe parent, retournez false。
3. Par nom de classe parent,Nous pouvons l'utiliser plus loin PHP de反射函数(comme get_class_methods)获取父类de方法信息。
4. Cette méthode convient au débogage、动态调用方法以及构建面向Objetde工具类ou框架。
Choses à noter:
- get_parent_class() Renvoie uniquement la classe Parent Direct,不会返回祖父类ou更高级别de父类。
- comme果需要判断Objet是否继承自某个特定类,Peut également être utilisé `is_a($object, 'ClassName')` ou `instanceof` Opérateur。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>