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

从类中对未定义函数的php调用,php,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())

因此,我有一个类,在该类的一个函数中,我试图调用一个全局函数,但我得到了错误消息:

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

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

    返回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;
}

如何从类中调用该函数?

如果试图调用get_session_user_id(),但该函数未定义,请检查,该函数的哪个文件未定义,请尝试编写

require_once "...filename with get_session_user_id() function...";

在类Ref.的文件开始时,确保在类Ref.Ref加载之前加载定义了函数
get\u session\u user\u id()
的全局文件

换句话说,类加载应该是这样的:
1.包括包含impl of
get\u session\u user\u id()的全局文件。

2.荷载等级
Ref

要检查发生了什么,请在类定义之前的
Ref.php
中添加此项

if (!function_exists('get_session_user_id')) {
    die('GLOBAL FILE NOT LOADED and get_session_user_id() function not available!!!');
}

请包含更多代码。这部分看起来不错。代码在哪一行?所有其他代码功能正常,如果我返回一个字符串而不是从函数派生的值,它将返回字符串,一切都很好。还需要更多的代码吗?我们需要更多的细节。Jeff,显示哪一行返回错误。我刚刚解决了类函数中以下代码的相同问题:
$emailAddresses=array_column($recipients,'email')错误是:
调用未定义的函数MyPackage\array\u column()
谢谢Gandra,我喜欢这样做,因为我不需要在几个文件中“require\u一次”,而是解决了问题的根本原因,即函数在类定义之后才定义。