2014-04-14 16 views
5

Sono nuovo di php e non sono sicuro del motivo per cui il server go-daddy tratta i dati JSON in modo diverso. Quando lo ospitiamo localmente sul mio computer nell'host locale, quando voglio echo array vuoto JSON, ho semplicemente messo [] come mostrato qui sotto. Ma quando ho caricato il codice su go-daddy server e lo ho provato, ha echeggiato un errore, errore Parse: errore di sintassi, imprevisto '[', in attesa ')' in ... Mi chiedo come posso mettere il JSON così può echo [] quando necessario. Altrimenti darà "null" e quando si analizzerà in AS3, si trasformerà in un errore di analisi JSON.Ottieni JSON per stampare un array vuoto.

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

risposta

7

Questo è perché la versione server web deve essere inferiore a 5,4. Si sta tentando di utilizzare una new feature di PHP 5.4 chiamato la sintassi breve serie

Uso echo json_encode(array()); invece di echo json_encode([]);

Working Demo on PHP v 5.3

+1

Grazie per le informazioni, Sono appena andato al server e ho aggiornato la versione, ora funziona, non sapevo che fosse impostata su 5.3 prima. – Benyaman

4

devi usare questo:

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

[] per gli array è supportato solo in PHP 5.4+.

Quindi significa che PHP non è una versione abbastanza alto sul vostro host, provate a chiedere loro di aggiornare a 5.4 o provare array(); invece di []

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

è possibile utilizzare questo