有没有办法检查一个类中是否存在函数?

时间:2013-12-11 05:54:40

标签: php function

我正在传递一些帖子数据来执行基于帖子数据的功能,以确定是否应该执行此功能我尝试使用以下内容:

$SP = new StoredProcedure();

if(function_exists($SP->$_POST['function']))
{
    $SP->$_POST['function']();
}
else
{
    echo 'function does not exist.';
}

不幸的是,这传递了以下错误:

  

注意:未定义的属性:StoredProcedure :: $ getFormList in   C:\ DWASFiles \网站\ junglegym \ VirtualDirectory0 \网站\ wwwroot的\的wp-content \插件\ qcore \ qcore_waitress.php   第353行功能不存在。

我确定这个功能确实存在,当我在没有function_exists()

的情况下执行它时

有没有办法检查一个函数是否存在于类中?

3 个答案:

答案 0 :(得分:4)

method_exists检查给定对象的类方法:

文档链接: http://www.php.net/method_exists

if(method_exists($SP, $_POST['function'])) {
    {
        $SP->$_POST['function']();
    }
    else
    {
        echo 'function does not exist.';
    }

function_exists()method_exists()用于这些检查。第一个是常规函数,第二个是OOP函数。

答案 1 :(得分:3)

您应该使用method_exists

尝试:

if(method_exists($SP, $_POST['function'])) {

答案 2 :(得分:2)

检查这一切

Find out if a method exists in a static class

Checking if function exists

以及

的PHP手册

php.net/method_exists

php.net/manual/en/function.function-exists.php

www.php.net/class_exists

希望这些可以帮到你。