解析错误:语法错误,意外'未设置'(T_UNSET)

Kha*_*azi 10 php syntax unset

我使用简单的php unset()函数来删除和索引数组,但它显示错误

Parse error: syntax error, unexpected 'unset' (T_UNSET)
Run Code Online (Sandbox Code Playgroud)

错误.这是syntex

echo $totalArray  =     unset($linkExtHelp[0]); 
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Kri*_*h R 21

试试这个,unset($linkExtHelp[0])分配给变量的原因echo $totalArray = 你不能将unset()值赋给变量,你可以在unset之前和unset之后检查,如下所示.换句话说, unset没有任何返回值,因为它unset是一个空白.Void - 不向其调用者提供结果值.

语法: void unset(mixed $ var [,mixed $ ...])

echo "Before unset:",$linkExtHelp[0];
unset($linkExtHelp[0]);
echo "After unset:",$linkExtHelp[0];
Run Code Online (Sandbox Code Playgroud)

代替

echo $totalArray  =     unset($linkExtHelp[0]);
Run Code Online (Sandbox Code Playgroud)


use*_*740 8

unset不会返回一个值 - 它不能被有意义地用作表达式,即使这样的产品被接受了.

但是,导致解析错误的原因unset是关键字和"特殊生产":即使unset看起来像一个函数,它也不是函数1.因此,每个语言语法unset仅作为语句2有效.

可以在zend_language_parser.y中找到该产品:

309 unticked_statement:
       |   ..
338    |   T_UNSET '(' unset_variables ')' ';'
Run Code Online (Sandbox Code Playgroud)

1语法是由于历史设计的选择,可以说从一致性的角度来看是错误的:

注意:因为[unset]是一种语言结构而不是一个函数,所以不能使用变量函数调用它.

2还有"(未设置)铸造",但我忽略了这一点.