php从类中调用未定义的函数

时间:2015-11-14 11:34:49

标签: php

所以,我有一个类,并且在类中的一个函数中我试图调用一个全局函数,但是我得到了错误消息:

  

致命错误:调用未定义的函数()

  • 上述函数所指的行号是以下行:

    返回get_session_user_id(session_id());

出现在下面的类函数

Class Ref {
    function treat_var( $var , $table ) { global $link;
    // do stuff
    return get_session_user_id(session_id());
    }
}

treat_var函数是类中的方法,通过以下方式调用:

$ref = new Ref;
$ref->treat_var($var,$table);

get_session_user_id函数是在函数文件中包含的全局函数,在类之外正常工作,其代码包括:

// this function calls a USER_ID *IF one exists* from a session by using the session ID
function get_session_user_id($sessionID) { global $link;
        $result = mysqli_query($link, "SELECT USER_ID AS ID from AAB_SESSIONS WHERE PHPSESSID = '$sessionID'");
        $r = mysqli_fetch_object($result);
        return $r->ID;
}

如何在班级内调用该功能?

2 个答案:

答案 0 :(得分:1)

确保在加载类get_session_user_id()之前加载定义了函数Ref的全局文件。

换句话说,课程加载应该是这样的:
 1.包含包含get_session_user_id()的impl的全局文件  2.加载班级Ref

要检查发生了什么,请在类定义

之前的Ref.php内添加
if (!function_exists('get_session_user_id')) {
    die('GLOBAL FILE NOT LOADED and get_session_user_id() function not available!!!');
}

答案 1 :(得分:0)

如果您尝试调用get_session_user_id()并且此函数未定义,请检查,此函数的文件未定义,尝试编写

UserForm1.Show False

在您的班级Ref。

的文件开头