Thumbsup:为什么将$ user_id解释为函数?

问题描述:

详细

用户与id=12试图打开一个网页,会出现以下错误:

警告:call_user_func()预计参数1是一个有效的回调,功能'12'未找到或无效的函数名在E:\ thumbsup2 \类\ thumbsup.php上线201

有问题的行是$user_id = (int) call_user_func(ThumbsUp::config('user_id_callback'));

umbsup.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; 
} 

在config.php

'user_id_callback' => $userz_id, //         <<-- $userz_id is 12 

质询

我怎么能回到12为$ USER_ID?为什么12被解释为一个函数?

+0

该类或它的任何父母是否具有__call或__get函数? – 2012-08-14 06:01:52

+0

肯定问题是你正在使用call_user_func()并从你的配置中传递一个user_id而不是一个可调用的函数? – martynthewolf 2012-08-14 06:14:42

+0

我该如何去做一个可调用函数?或者还有另一种方法可以将user_id的值传递给thumbsup.php对不起,如果这听起来像一个愚蠢的问题。 – TryHarder 2012-08-14 06:24:08

你不需要的call_user_func方法都没有。它看起来像你正在做的是从配置文件加载你的用户ID,它看起来不像你做任何修改它,所以应该工作。

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

因为 call_user_func(::配置( 'user_id_callback')) 和user_id_callback为12