PHP尝试调用不带任何名称的函数


PHP tries to call function without any name

运行此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,但我不明白它为什么会出现,有什么想法吗?

您可以看到:

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])