【问题标题】:PHP tries to call function without any namePHP尝试调用没有任何名称的函数
【发布时间】:2012-08-02 15:16:42
【问题描述】:

运行此 PHP 代码时:

// test value
$value = "123456-7890";

// remove blank spaces and explode
$value = str_replace(' ', '', $value);
$value = explode('-', $value);

// check number of digits depending on format
if ((count($value) == 1 && strlen($value[0]) != 10) || (strlen($value[0]) != 6 || strlen($value[1]) != 4))
{
    echo "wrong number of digits!";
}

我收到以下错误:

PHP Fatal error:  Call to undefined function  () in /Users/Rikard/Desktop/test.php on line 10

据我所知,这部分出现了问题:strlen($value[0]) != 10,但我看不出它为什么会出现,有什么想法吗?

【问题讨论】:

  • 你确定没有$ 前置函数名称之一,如$strlen

标签: php function undefined fatal-error


【解决方案1】:

你看到了:

if ((count($value) == 1 && strlen($value[0]) != 10) || (strlen($value[0]) != 6 || strlen($value[1]) != 4))

PHP 看到这一点( 表示不间断空格):

if ((count($value) == 1 && strlen($value[0]) != 10) ||•(strlen($value[0]) != 6 || strlen($value[1]) != 4))

当我无意中尝试从 Mac/Safari 复制一些代码时,我总是会遇到这种情况。顺便说一句,我试图“编辑”你的问题,并从那里复制代码以供进一步检查。

PHP 将不间断空格解释为有效的函数名,并尝试执行它:

•(strlen($value[0])

【讨论】:

  • 我很好奇,你是怎么看到的?
  • 我不明白这将如何解释错误Call to undefined function ()。能多解释一下吗?
  • @Jocelyn 好的,我明白了,错误消息中的多余空格。因为这就像他在调用•(strlen($value[0]) != 6 || strlen($value[1]) != 4),其中•()是函数
  • 我认为 SO 剥离了不间断的空间。我试图在代码高尔夫上的函数名称中使用它,它破坏了代码。复制/粘贴代码不会有它。
  • 感谢@biziclop 和 Mathieu,现在我明白了。记住这一点很有趣!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-24
  • 1970-01-01
相关资源
最近更新 更多