从类中对未定义函数的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一次”,而是解决了问题的根本原因,即函数在类定义之后才定义。