gpt4 book ai didi

php - method_exists 在父类 php

转载 作者:可可西里 更新时间:2023-11-01 12:42:23 26 4
gpt4 key购买 nike

我正在尝试使用 php 函数 method_exists,但我需要检查该方法是否存在于对象的父类中。

所以:

class Parent
{
public function myFunction()
{
/* ... */
}
}

class Child extends Parent
{
/* ... */
}

$myChild = new Child();

if (method_exists($myChild, 'myFunction'))
{
/* ... */
}

if (method_exists(Parent, 'myFunction'))
{
/* ... */
}

if (is_callable(array('Parent', 'myFunction'))
{
/* ... */
}

但以上都不起作用。我不确定接下来要尝试什么。

感谢您的帮助!

最佳答案

在这种情况下,子类必须扩展父类

class Parent
{
public function hello()
{

}
}

class Child extends Parent
{

}

$child = new Child();

if(method_exists($child,"hello"))
{
$child->hello();
}

Update 我认为这与 method_exists 具有相同的效果。

function parent_method_exists($object,$method)
{
foreach(class_parents($object) as $parent)
{
if(method_exists($parent,$method))
{
return true;
}
}
return false;
}

if(method_exists($child,"hello") || parent_method_exists($object,"hello"))
{
$child->hello();
}

刚刚从 Wrikken 的帖子中更新

关于php - method_exists 在父类 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3307938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com