【问题标题】:Thumbsup: Why is $user_id interpreted as a function?Thumbsup:为什么 $user_id 被解释为一个函数?
【发布时间】:2012-08-14 06:00:21
【问题描述】:

详情

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

警告:call_user_func() 期望参数 1 为有效回调,未找到函数 '12' 或 E:\thumbsup2\classes\thumbsup.php 第 201 行中的无效函数名

违规行是$user_id = (int) call_user_func(ThumbsUp::config('user_id_callback'));

thumbup.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 被解释为一个函数?

【问题讨论】:

  • 类或者它的任何父类是否有 __call 或 __get 函数?
  • 问题肯定是您使用的是 call_user_func() 并从您的配置中传递了一个 user_id 而不是可调用函数?
  • 如何让它成为一个可调用函数?或者是否有另一种方法可以将 user_id 的值传递给 thumbsup.php 对不起,如果这听起来像一个愚蠢的问题。
  • 相信我已经找到了解决办法$user_id = ThumbsUp::config('user_id_callback');

标签: php function callback warnings


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    因为 call_user_func(::config('user_id_callback')) user_id_callback 是 12。

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 2020-01-04
      • 2013-07-08
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-20
      相关资源
      最近更新 更多