Php 为什么$user\u id被解释为一个函数?

Php 为什么$user\u id被解释为一个函数?,php,function,callback,warnings,Php,Function,Callback,Warnings,详细信息 id=12的用户试图打开页面,出现以下错误: 警告:call\u user\u func()要求参数1是有效的回调,函数'12'在第201行的E:\thumbsup2\classes\thumbsup.php中找不到或函数名无效 有问题的行是$user\u id=(int)call\u user\u func(ThumbsUp::config('user\u id\u callback') thumbsup.php public static function get_user_id(

详细信息

id=12的用户试图打开页面,出现以下错误:

警告:call\u user\u func()要求参数1是有效的回调,函数
'12'
在第201行的E:\thumbsup2\classes\thumbsup.php中找不到或函数名无效

有问题的行是
$user\u id=(int)call\u user\u func(ThumbsUp::config('user\u id\u callback')

thumbsup.php

public static function get_user_id()
{
    // Cache
    static $user_id = FALSE;

    // This code only needs to be executed once per request
    if ($user_id !== FALSE)
        return $user_id;

    // The callback config is left empty
    if ( ! ThumbsUp::config('user_id_callback'))
        return $user_id = NULL;

    // Load the user id
    $user_id = (int) call_user_func(ThumbsUp::config('user_id_callback'));//<<-- line 201

    // Set user id to NULL if not found
    return ($user_id) ? $user_id : $user_id = NULL;
}
公共静态函数get\u user\u id()
{
//缓存
静态$user\u id=FALSE;
//每个请求只需要执行一次此代码
如果($user\u id!==FALSE)
返回$user\u id;
//回调配置保留为空
如果(!ThumbsUp::config('user\u id\u callback'))
返回$user\u id=NULL;
//加载用户id
$user\u id=(int)call\u user\u func(ThumbsUp::config('user\u id\u callback');//因为
调用用户函数(::config('user\u id\u callback'))

用户id\u callback是12。

您根本不需要call\u user\u func方法。看起来您所做的只是从配置文件中加载用户id,看起来您并没有做任何修改以使其正常工作

$user_id = ThumbsUp::config('user_id_callback');

该类或其任何父类是否具有_调用或_get函数?问题肯定是您使用的是call_user_func()从你的配置中传递一个用户id而不是一个可调用的函数?我该如何把它变成一个可调用的函数?或者有没有其他方法将用户id的值传递给thumbsup.php对不起,如果这听起来像个愚蠢的问题。我相信我可能已经找到了解决方案
$user\id=thumbsup::config('user\id\u callback');
$user_id = ThumbsUp::config('user_id_callback');