Hướng dẫn php json_decode check if property exists - php json_decode kiểm tra xem thuộc tính có tồn tại không

Mã này là một phần của máy chủ WebSocket:

$msgArray = json_decode($msg);
if ($msgArray->sciID) {
  echo "Has sciID";
}

Nó sẽ nhận được một chuỗi JSON như {"sciID":67812343} hoặc chuỗi JSON hoàn toàn khác mà không có SciID như {"something":"else"}.

Khi máy chủ nhận được sau, nó vang lên: Notice: Undefined property: stdClass::$sciID in /path/to/file.php on line 10

Mã chính xác để kiểm tra xem $msgArray->sciID có tồn tại là gì?

Khi được hỏi ngày 1 tháng 5 năm 2011 lúc 23:11May 1, 2011 at 23:11

Hướng dẫn php json_decode check if property exists - php json_decode kiểm tra xem thuộc tính có tồn tại không

2

Sử dụng

if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
0 làm kiểm tra mục đích chung (bạn cũng có thể sử dụng
if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
1 vì bạn đang xử lý một đối tượng):

if (isset($msgArray->sciID)) {
    echo "Has sciID";
}

Đã trả lời ngày 1 tháng 5 năm 2011 lúc 23:13May 1, 2011 at 23:13

RossrossRoss

45.3K37 Huy hiệu vàng118 Huy hiệu bạc170 Huy hiệu đồng37 gold badges118 silver badges170 bronze badges

1

Đã trả lời ngày 1 tháng 5 năm 2011 lúc 23:14May 1, 2011 at 23:14

Trong trường hợp

if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
2 hoặc
if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
3 không hoạt động, chúng ta có thể sử dụng
if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
4

if (array_key_exists("key", $array)) {
    echo "Has key";
}

Đã trả lời ngày 17 tháng 1 năm 2014 lúc 18:23Jan 17, 2014 at 18:23

Petr Hurtakpetr HurtakPetr Hurtak

2.1811 Huy hiệu vàng18 Huy hiệu bạc17 Huy hiệu đồng1 gold badge18 silver badges17 bronze badges

1

Tôi đã luôn hoàn thành

if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
2 nhưng gần đây tôi đã thay đổi thành
if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
6 và
if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
7 vì một trong những người bạn của tôi đã đề xuất nó.

Đã trả lời ngày 1 tháng 5 năm 2011 lúc 23:19May 1, 2011 at 23:19

JoshwaajoshwaaJoshwaa

8501 huy hiệu vàng11 Huy hiệu bạc21 Huy hiệu đồng1 gold badge11 silver badges21 bronze badges

2

Hàm

if (isset($msgArray->sciID)) {
    echo "Has sciID";
}
2 kiểm tra xem một biến được đặt và không phải là null, điều này thực sự ngu ngốc, được đặt tên. Nếu bạn chỉ muốn biết nếu một biến được đặt, hãy sử dụng chức năng sau:

function is_set( & $variable ) {
    if ( isset( $variable ) and ! is_null( $variable ) )
        return true;
    else
        return false;
}

Hàm này sẽ trả về đúng chính xác khi biến không được đặt và sai. '&' Bên cạnh đối số là quan trọng, bởi vì nó bảo PHP chuyển tham chiếu đến biến và không phải là giá trị của biến, do đó tránh "thông báo: biến không xác định" khi biến không được đặt.Notice: Undefined variable" when the variable is not set.

Đã trả lời ngày 28 tháng 10 năm 2012 lúc 21:13Oct 28, 2012 at 21:13

SophivorussophivorusSophivorus

2.8682 Huy hiệu vàng32 Huy hiệu bạc43 Huy hiệu đồng2 gold badges32 silver badges43 bronze badges

2

Trong nhiều lần, bạn có thể cần kiểm tra xem thuộc tính đối tượng JSON có khả dụng hay không và tùy thuộc vào điều này bạn cần & nbsp; trả về một số giá trị, nếu không, bạn có thể gặp lỗi nếu thuộc tính đối tượng không có sẵn bên trong dữ liệu được định dạng JSON.

Đối với hướng dẫn này, chúng tôi đã lấy dữ liệu được định dạng JSON dưới đây:

Bây giờ chúng tôi sẽ kiểm tra xem thuộc tính đối tượng mô tả có khả dụng hay không có trong PHP không. Vì vậy, dưới đây là mã PHP sẽ thực hiện nhiệm vụ này:

$get_json = json_decode($json_data);
if (isset($get_json->description)) {
   echo $get_json->description; // valueMain2
}
else {
echo "description is not available";
}

Mã trên chỉ đơn giản là giải mã dữ liệu được định dạng JSON bằng hàm JSON_DECODE PHP và sau đó kiểm tra xem đối tượng mô tả có sẵn trong JSON không. Nếu nó có sẵn thì nó sẽ được hiển thị trên trang web và nếu không thì nó sẽ lặp lại mô tả văn bản không có sẵn.

Tôi khuyên bạn nên thử điều này trên máy chủ của mình bằng cách tạo dữ liệu được định dạng JSON. Đầu tiên, hãy thử giữ thuộc tính Mô tả trong văn bản được định dạng JSON và sau đó chạy lại sau khi xóa thuộc tính Mô tả.

Vì vậy, điều đó không dễ dàng như vậy? Bạn có thích điều đó không? Nếu bạn có bất kỳ câu hỏi nào liên quan đến hướng dẫn này thì bạn có thể hỏi tôi. Tôi luôn sẵn sàng giúp bạn và cố gắng hết sức.

Làm cách nào để kiểm tra xem một cái gì đó tồn tại trong PHP?

Hàm php isset () hàm isset () kiểm tra xem một biến được đặt, điều đó có nghĩa là nó phải được khai báo và không phải là null. Hàm này trả về đúng nếu biến tồn tại và không phải là null, nếu không nó sẽ trả về sai.isset() Function The isset() function checks whether a variable is set, which means that it has to be declared and is not NULL. This function returns true if the variable exists and is not NULL, otherwise it returns false.

Làm thế nào kiểm tra khóa JSON tồn tại hay không trong PHP?

Hàm ARRAY_KEY_EXISTS () PHP ARRAYarray_key_exists() Function The array_key_exists() function checks an array for a specified key, and returns true if the key exists and false if the key does not exist.

Hàm json_decode () nào sẽ trở lại?

Hàm json_decode () có thể trả về giá trị được mã hóa trong JSON theo loại PHP thích hợp.Các giá trị đúng, sai và null được trả về tương ứng là đúng, sai và null.NULL được trả về nếu JSON không thể được giải mã hoặc nếu dữ liệu được mã hóa sâu hơn giới hạn đệ quy.a value encoded in JSON in appropriate PHP type. The values true, false, and null is returned as TRUE, FALSE, and NULL respectively. The NULL is returned if JSON can't be decoded or if the encoded data is deeper than the recursion limit.

Json_encode và json_decode là gì?

Cấu trúc dữ liệu JSON rất giống với các mảng PHP.PHP có các chức năng tích hợp để mã hóa và giải mã dữ liệu JSON.Các hàm này là json_encode () và json_decode (), tương ứng.Cả hai chức năng chỉ hoạt động với dữ liệu chuỗi được mã hóa UTF-8.PHP has built-in functions to encode and decode JSON data. These functions are json_encode() and json_decode() , respectively. Both functions only works with UTF-8 encoded string data.