【问题标题】:IF / OR statement causes Call to undefined function() error. Why?IF / OR 语句导致 Call to undefined function() 错误。为什么?
【发布时间】:2018-12-13 16:25:36
【问题描述】:

我已经多次看到此错误消息,即使在谷歌上搜索了很长时间后,我也真的无法找出问题所在:

$uid = GNGHelper::getLoggedInUserID();
$assignedGuideID = $tour->get('guide')->get('juser_id');
$isCoord = GNGHelper::isLoggedInUserCoord();

if (($uid == $assignedGuideID) || ($isCoord === true)) {}

我收到以下指向 if 语句的错误:

致命错误:在第 51 行调用 /home/gonative/public_html/dev/modules/mod_gngtourdetails/mod_gngtourdetails.php 中的未定义函数 ()

这个 if 语句有什么问题?

非常感谢!

【问题讨论】:

  • 你确定是那条线吗?
  • if 语句没有任何问题,但请注意您不需要额外的括号,您可以直接使用 if ($uid == $assignedGuideID || $isCoord === true)
  • 错误消息缺少您尝试调用的函数名称。你删除了吗?如果不是,我只能想象一些魔术代码,您可以在其中返回闭包或其他东西,使用魔术方法或结合魔术将函数分配给变量。如果您不确定,请避免使用 PHP 中的魔法。
  • 响应您的 cmets: (1) 至少错误消息指向 if 行,这是肯定的。 (2) 有趣的是,如果我删除内部括号,我的编辑器 (Aptana Studio) 会标记语法错误。 (3) 不,我没有删除任何东西。这是确切的错误消息。据我所知,我没有使用任何神奇的 PHP,我什至不知道那是什么。还有其他提示吗?
  • 如果(之前有一个隐藏字符并且PHP检测到它,它被理解为一个函数调用。我们应该小心复制/粘贴的另一个原因!

标签: php if-statement undefined-function


【解决方案1】:

@Kaddath:谢谢!你说对了!!!我从所有地方的行中删除了所有额外的空格,现在它可以工作了。我仍然不明白为什么,但至少它有效。这是我更正的行:if(($uid == $assignedGuideID)||($isCoord === true)){ – 17 小时前流浪
1 如果 a ( 之前有一个隐藏字符,并且 PHP 检测到它,则将其理解为函数调用。我们应该小心复制/粘贴的另一个原因!! – Kaddath 2 小时前

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-12-12
    • 2022-12-02
    • 1970-01-01
    • 2015-05-15
    • 2012-06-05
    • 2016-06-14
    • 1970-01-01
    相关资源
    最近更新 更多