الدالة json_decode()‎ في PHP

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث

(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0)

تفك الدالة json_decode()‎ ترميز سلسلة نصية بصيغة JSON.

الوصف

mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0]]] )

تأخذ سلسلة مُرمَّزة بصيغة JSON وتحوِّلها إلى مُتغيِّر PHP.

المعاملات

json

سلسلة json التي سيُفكُّ ترميزها.

تعمل هذه الدّالّة مع سلاسل نصّيّة مُرمَّزة بترميز UTF-8 فقط.

ملاحظة: تعتمد PHP مجموعة عُليا من JSON كما هو مُحدَّد في المعيار الأصلي RFC 7159.

assoc

عندما تكون قيمته صحيحة TRUE، فستُحوَّل الكائنات المُعادة من الدّالّة إلى مصفوفات ترابطية (associative arrays).

depth

عُمق المُعاوَدة (recursion) المُحدَّد من قبل المستخدم.

options

خيارات لفك ترميز JSON على شكل قناع بت Bitmask. هناك حاليًّا خياران مدعومان، الأوّل هو JSON_BIGINT_AS_STRING والذي يسمح بقلب الأعداد الصّحيحة الكبيرة إلى سلاسل نصّيّة بدلًا من أعداد ذات فاصلة عائمة float، وهو الخيار الافتراضي، الخيار الثّاني هو JSON_OBJECT_AS_ARRAY وله نفس تأثير تعيين قيمة المُعامِل assoc إلى TRUE.

القيم المعادة

تُعيد هذه الدّالّة القيمة المُرمَّزة في المُعامِل json إلى نوع مناسب في لغة PHP، تُعاد القيم true و false و null على شكل TRUE و FALSE و NULL على التوالي وبالتّرتيب. تُعاد القيمة NULL في حال تعذّر فك ترميز سلسلة json أو كانت البيانات المُرمَّزة أعمق من حدّ المُعاوَدة.

أمثلة

المثال 1: أمثلة على استخدام الدالة json_decode()

<?php

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';

var_dump(json_decode($json));

var_dump(json_decode($json, true));

?>

ينتج عن المثال السّابق ما يلي:

object(stdClass)#1 (5) {

 	["a"] => int(1)

 	["b"] => int(2)

 	["c"] => int(3)

 	["d"] => int(4)

 	["e"] => int(5)

}

array(5) {

 	["a"] => int(1)

 	["b"] => int(2)

 	["c"] => int(3)

 	["d"] => int(4)

 	["e"] => int(5)

}