2013-11-09 142 views
0

PHP語法檢查:解析錯誤:語法錯誤,意想不到的「[」在行代碼100PHP解析錯誤語法錯誤

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

這是正確的語法? (道歉的noob問題)

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

自段:

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

哪一個拋出一個錯誤,哪個完成了? –

+3

您使用的是什麼版本的PHP?數組解引用是在5.4中引入的,但是'$ clicks = each($ array)[1];'和'$ clicks = each($ array [1]);'會實現完全不同的東西。你究竟在做什麼? –

+0

那麼'$ clicks = each($ array)[1];'是拋出錯誤,所以我認爲這將永遠不會是正確的。但我使用5.2。如果我將該行註釋掉,下面的行會導致錯誤,所以它必須是括號暴露出來的,不是嗎? – Potatrick

回答

0

在PHP這很好,爲向後兼容的最新版本,我建議是這樣的:

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

現在使用$click代替$clicks,在下面的代碼。

0

你可能會更好地使用foreach($數組作爲$鍵=> $ VAL){//做你的這裏的邏輯)}}進行數組遍歷,或者如果你想使用每一個的返回值,首先將它存儲在一個單獨的變量中,然後引用你想要的鍵。

即:

$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