【问题标题】:PHP Parse error syntax error [duplicate]PHP Parse错误语法错误[重复]
【发布时间】:2013-11-09 22:23:15
【问题描述】:

PHP 语法检查:解析错误:语法错误,第 100 行代码中出现意外的“[”

$clicks = each( $array )[1];

这是正确的语法吗? (为菜鸟问题道歉)

$clicks = each( $array [1]);

来自部分:

$array = array_count_values( $array );
        unset( $array[''] );
        do
        {
            $clicks = each( $array )[1];
            $id = each( $array )[0];
            if ( each( $array ) )
            {
            }

【问题讨论】:

  • 哪个报错,哪个不报错?
  • 您使用的是什么版本的 PHP?数组取消引用是在 5.4.... 中引入的,但 $clicks = each( $array )[1];$clicks = each( $array [1]); 会实现完全不同的效果。你到底想做什么?
  • 好吧$clicks = each( $array )[1]; 正在抛出错误,所以我认为这永远不会正确。但我使用的是 5.2。如果我注释掉那一行,下面一行会导致错误,所以必须是括号暴露了,不是吗?

标签: php syntax syntax-error


【解决方案1】:

在最新版本的 PHP 中很好,为了向后兼容,我推荐如下:

$clicks = each($array); $click = $clicks[1];

现在在下面的代码中使用$click 而不是$clicks

【讨论】:

    【解决方案2】:

    你可能最好使用 foreach ($array as $key=>$val){ // 在这里做你的逻辑)} 用于数组遍历,或者如果你想使用 each 的返回,将它存储在一个先分离变量,然后引用你想要的键。

    即:

    $eachResult = each($array);
    $clicks=$eachResult[1];
    $id=$eachResult[0];
    ...
    

    使用 [ ] 来引用返回数组的函数的数组键的功能仅在最近的 php 版本中添加。 (5.4 我相信)。

    编辑:是的,5.4:“已添加函数数组解引用,例如 foo()[0]。”

    http://www.php.net/manual/en/migration54.new-features.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 1970-01-01
      • 2013-12-21
      • 2016-07-18
      • 2012-11-03
      • 1970-01-01
      相关资源
      最近更新 更多