現在の位置: ホーム> 最新記事一覧> get_classを介してオブジェクトの親クラス名を取得するにはどうすればよいですか?詳細な手順と例分析

get_classを介してオブジェクトの親クラス名を取得するにはどうすればよいですか?詳細な手順と例分析

gitbox 2025-10-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 序文(記事の主題とは何の関係もありません)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"これは序文の例です,任意の例のテキストまたはプログラム出力にすることができます。&lt;br&gt;"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"以下は、水平線でテキストの内容から分離されます。。&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">// テキストを開始します</span></span><span>
<span class="hljs-comment">/*
タイトル: 合格する方法get_classオブジェクトの親クラス名を取得します?詳細な手順と例分析

存在するPHP開発中,多くの場合、オブジェクトが属するクラスまたは親クラスの情報を判断する必要があります。,タイプの判断のため、動のにメソッドを呼び出すかデバッグ。この記事では、詳細に使用する方法を紹介しますPHPのget_class函数和相关方法オブジェクトの親クラス名を取得します,インスタンス分析を通じて理解するのに役立ちます。
*/</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">// aを作成しますDog物体</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">// 最初のステップ:获取物体の类名</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">"物体所属类名: "</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">// 出力 Dog</span></span><span>

</span><span><span class="hljs-comment">// ステップ2:オブジェクトの親クラス名を取得します</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">"物体父类名: "</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">// 出力 Animal</span></span><span>

</span><span><span class="hljs-comment">// ステップ3:条件に基づいて親情報を使用します</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">"该物体是Animal类の子类,呼び出すことができますAnimal中定义の方法。&lt;br&gt;"</span></span><span>;
}

</span><span><span class="hljs-comment">// ステップ4:さらなるアプリケーション——親クラス名を反映してメソッドリストを取得します</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">"親クラスのメソッドのリスト: &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">/*
分析と要約:

1. get_class() 函数用于获取物体所属の当前类名。
2. get_parent_class() 函数用于获取物体の直接父类名,親クラスがない場合は、返します false。
3. 親クラス名で,さらに使用できます PHP の反射函数(のように get_class_methods)获取父类の方法信息。
4. この方法は、デバッグに適しています、动态调用方法以及构建面向物体の工具类または框架。

注意すべきこと:

- get_parent_class() 直接親クラスのみを返します,不会返回祖父类または更高级别の父类。
- のように果需要判断物体是否继承自某个特定类,使用することもできます `is_a($object, 'ClassName')` または `instanceof` オペレーター。
*/</span>
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>