2013-11-02 117 views
4

我有一個小問題給大家。目前,我有我的網站上的000webhost,並以下線:爲什麼PHP會拋出這個分析錯誤?

$price = explode(".",$item->sellingStatus->currentPrice)[0]; 

導致以下錯誤:

Parse error: syntax error, unexpected '[' in /home/a1257018/public_html/scripts/myfile.php on line 58

當它不會引起這個在localhost上。該代碼應該可以工作...爆炸返回一個數組,[0]只需調用第一個項目。爲什麼這會拋出一個錯誤?

+4

哪個PHP版本安裝在本地? –

+0

你確定'explode()'的結果是一個數組,並且該數組不是空的? – Zim84

+0

@ Zim84即使它不是,那也不會導致語法錯誤 –

回答

10

此語法只允許在PHP 5.4+中使用。你必須在舊版本使用臨時變量:

$tmp = explode('.', $item->sellingStatus->currentPrice); 
$price = $tmp[0]; 

一直discussed on SO

+0

Gah ..這就是我所害怕的。我相信000webhost使用PHP 5.2。看起來我有很多編輯工作要做。謝謝! – Nickersoft

+1

呵呵,php的喜悅;-) http://me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design/ – Sumurai8

+0

我還是不知道爲什麼沒有人實現這個早。 –

1

使用它作爲

$array = explode(".", $item->sellingStatus->currentPrice); 
$price = $array[0]; 

這是因爲你的服務器不支持,因爲這php < 5.4語法,這裏是same error顯示5.3.19working here使用php-5.4英寸

0
$price = explode(".",$item->sellingStatus->currentPrice); 
$currentPrice = $price[0]; 

這應該有效。

相關問題