2014-04-14 25 views
5

Tôi mới sử dụng php và không chắc tại sao máy chủ go-daddy xử lý dữ liệu JSON khác nhau. Khi tôi lưu trữ cục bộ trên máy tính của mình trong máy chủ lưu trữ cục bộ, khi tôi muốn lặp lại mảng JSON trống, tôi chỉ cần đặt [] như sau. Nhưng khi tôi tải lên mã để go-daddy server và thử nó ra nó lặp lại một lỗi, Parse lỗi: cú pháp lỗi, bất ngờ '[', mong ')' trong ... Tôi tự hỏi làm thế nào tôi có thể đặt JSON như vậy nó có thể echo [] khi cần thiết. Nếu không nó sẽ cho "null" và khi nó phân tích thành AS3, nó biến thành một lỗi phân tích cú pháp JSON.Nhận JSON để in mảng trống.

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

Trả lời

7

Đó là vì phiên bản webserver của bạn phải nhỏ hơn 5,4. Bạn đang cố gắng sử dụng một new feature của PHP 5.4 được gọi là cú pháp mảng ngắn

Sử dụng echo json_encode(array()); thay vì echo json_encode([]);

Working Demo on PHP v 5.3

+1

Cảm ơn thông tin, Tôi chỉ cần đi đến máy chủ và cập nhật phiên bản, bây giờ nó hoạt động, tôi didnt biết nó đã được thiết lập để 5.3 trước. – Benyaman

4

Bạn phải sử dụng này:

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

[] cho mảng chỉ được hỗ trợ trong php 5.4+.

Vì vậy, đó có nghĩa là php không phải là một phiên bản đủ cao trên máy chủ của bạn, hãy thử yêu cầu họ nâng cấp lên 5.4 hoặc thử array(); thay vì []

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

bạn có thể sử dụng