2014-04-14 37 views
5

我是新來的PHP,不知道爲什麼爸爸的服務器對待JSON數據的方式不同。 當我在本地主機上的本地主機上進行託管時,當我想要回顯空JSON數組時,我簡單地將[]顯示爲如下所示。但是,當我上傳的代碼去爸爸服務器,並嘗試了它回聲錯誤,解析錯誤:語法錯誤,意外的'[',期待')'在...我想知道我怎麼可以把JSON這樣它可以在需要時回顯[]。否則它會給「空」,當它解析成AS3時,它會變成JSON解析錯誤。獲取JSON以打印空數組。

if (!empty($output)){ 
     echo json_encode($output);} 
     else{ 
      echo json_encode([]); 
     } 

回答

7

那是因爲你的服務器版本必須小於5.4 array();。您正在嘗試使用PHP 5.4的new feature稱爲短陣語法

使用echo json_encode(array());,而不是echo json_encode([]);

Working Demo on PHP v 5.3

+1

感謝您的信息,我只是去了服務器,並更新了版本,現在它的工作原理,我不知道它被設置爲5.3之前。 – Benyaman

4

你必須使用:

if (!empty($output)){ 
     echo json_encode($output);} 
     else{ 
      echo json_encode(array()); 
     } 
3

[]數組在PHP只支持5.4+。

因此,這意味着PHP是不是你的主機上的足夠高的版本,儘量要求他們升級到5.4或試圖代替[]

2
if(count(json_encode($jArrary,1))==0) { 
echo "empty"; 
} 
//or 
if(empty(json_encode($jArrary,1))) { 
echo "empty"; 
} 

您可以使用此