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

时间:2014-01-30 06:42:13

标签: php syntax unset

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

Parse error: syntax error, unexpected 'unset' (T_UNSET)

错误。这是syntex

echo $totalArray  =     unset($linkExtHelp[0]); 

提前致谢。

4 个答案:

答案 0 :(得分:19)

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

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

echo "Before unset:",$linkExtHelp[0];
unset($linkExtHelp[0]);
echo "After unset:",$linkExtHelp[0];

而不是

echo $totalArray  =     unset($linkExtHelp[0]);

答案 1 :(得分:7)

unset不返回值 - 即使接受了这样的制作,也不能有意义地用作表达式。

然而,解析错误是由于unset is a keyword和“特殊制作”引起的:即使unset看起来像一个函数,它也不是函数 1 。因此,unset仅作为语言语法的语句 2 有效。

可以在zend_language_parser.y

中找到作品
309 unticked_statement:
       |   ..
338    |   T_UNSET '(' unset_variables ')' ';'

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

  

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

2 还有“(未设置)施法”,但我忽略了这一点。

答案 2 :(得分:0)

您无法指定"取消设置"。这就是我的方式。 你需要制作一个临时数组。

 $totalArray  = $linkExtHelp; // assign it to a new array (so you can keep the original one )

 foreach ($totalArray  as $key => $value) {
 unset($totalArray  [$key]['save_day']); // if you need to remove all of 'save_day' value from multi array
 }
 var_dump($totalArray); // after unset
 var_dump($linkExtHelp); // the original array


 //echo $totalArray  =     unset($linkExtHelp[0]); // This is wrong. no echo

我希望它有所帮助。

答案 3 :(得分:0)

Unset不返回任何内容,它是一个关键字。

我假设您想为数组重新索引,可以使用array_values来完成此操作

尝试一下:

unset($linkExtHelp[0]);
$totalArray = array_values($linkExtHelp);