2011-08-31 230 views
1

我一直在試圖調試這在過去的五分鐘,我只是不明白這是什麼問題:PHP解析錯誤:語法錯誤,意想不到的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING

這裏是我的代碼,行33 - 37:

for($i = 0; $i < 5; $i++) { 
    $followers_change[$i] = $en_array1[$i]['followers']-$en_array2[$i]['followers']; 
    $rank_change[$i] = $en_array1[$i]['rank']-$en_array2[$i]['rank']; 
     echo "<tr><td>$en_array1[$i]['rank']</td><td><img src='$en_array1[$i]['imageurl']' width='48' height='48'/></td><td>$en_array1[$i]['name']</td><td>$en_array1[$i]['followers]'</td><td>$en_array1['followers_change']</td></tr>"; 
} 

我不斷收到錯誤:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /.../ on line 36

我這是這樣一個愚蠢/新秀的錯誤道歉,我只是難倒,累了在山姆e時間(這並不能很好地結合:))。

+0

我個人儘量避免使用內部字符串數組下標,因爲它讓你有難以檢測錯誤的類型。 – zneak

+0

雙引號中的字符串插值遵循特定規則。如有疑問,請使用花括號語法。 – mario

回答

7

誤差在關注者的關鍵,你應該使用此代碼:

for($i = 0; $i < 5; $i++) { 
     $followers_change[$i] = $en_array1[$i]['followers']-$en_array2[$i]['followers']; 
     $rank_change[$i] = $en_array1[$i]['rank']-$en_array2[$i]['rank']; 
      echo "<tr><td>" . $en_array1[$i]['rank'] . "</td><td><img src='" . $en_array1[$i]['imageurl'] . "' width='48' height='48'/></td><td>" . $en_array1[$i]['name'] . "</td><td>" . $en_array1[$i]['followers'] . "'</td><td>" . $en_array1['followers_change'] . "</td></tr>"; 
    } 
+5

$ en_array1 [$ i] ['followers]它無效 –

+1

謝謝,沒有正確封裝+追隨者的關鍵問題是問題:)!我沒有意識到,我不得不封裝一個變量來說實話,因爲有時候一個字符串似乎回聲良好,包含變量而沒有封裝,並且沒有時候看起來不是時候。任何想法爲什麼後者可能發生?是否會因爲src ='$ en_array1 [$ i] ['followers']'?' – Avicinnian

+0

您歡迎,這是一個很好的問題。你可能是對的,我將不得不深入研究,找出原因。 –

3

您應該使用{}將變量封裝在該字符串中或使用。級聯。

4

參見:

.... ><td>$en_array1[$i]['followers]'</td ... 

你看到followers]後不匹配的'

4
<? 

for($i = 0; $i < 5; $i++) { 
    $followers_change[$i] = $en_array1[$i]['followers']-$en_array2[$i]['followers']; 
    $rank_change[$i] = $en_array1[$i]['rank']-$en_array2[$i]['rank']; 
     echo "<tr><td>{$en_array1[$i]['rank']}</td><td><img src='{$en_array1[$i]['imageurl']}' width='48' height='48'/></td><td>{$en_array1[$i]['name']}</td><td>{$en_array1[$i]['followers']}</td><td>{$en_array1['followers_change']}</td></tr>"; 
} 

你缺少一個',你應該使用{}周圍的瓦爾

相關問題