🔹 42. الفرق بين ==
و ===
في مقارنة المصفوفات
المشغل | ماذا يفعل؟ |
---|
== | يقارن المحتوى فقط بدون التحقق من الترتيب أو النوع |
=== | يقارن المحتوى + الترتيب + النوع بدقة |
✅ مثال 1 – استخدام ==
:
$arr1 = [1, 2, 3];
$arr2 = [1, 2, 3];
var_dump($arr1 == $arr2); // true ✅
PHP
✅ مثال 2 – استخدام ===
:
$arr1 = [1, 2, 3];
$arr2 = ["1", 2, 3];
var_dump($arr1 === $arr2); // false ❌ لأن "1" ليست نفسها 1
PHP
✅ مثال 3 – اختلاف الترتيب:
$a = [1, 2, 3];
$b = [3, 2, 1];
var_dump($a == $b); // false ❌
var_dump($a === $b); // false ❌
PHP
✅ التوصية:
- استخدم
===
في التحقق الصارم (خاصة في المقارنات الحساسة).
- استخدم
==
فقط لو كنت تعرف أن الترتيب والنوع ليسا مهمين.
🔹 43. التعامل مع المصفوفات باستخدام JSON
✅ json_encode()
– لتحويل المصفوفة إلى JSON:
$user = ["name" => "Yasin", "age" => 25];
$json = json_encode($user);
echo $json; // {"name":"Yasin","age":25}
PHP
✅ json_decode()
– لتحويل JSON إلى مصفوفة:
$json = '{"name":"Yasin","age":25}';
$array = json_decode($json, true); // true: يرجع كمصفوفة
print_r($array);
PHP
✅ الفوائد:
- يُستخدم في إرسال البيانات عبر APIs.
- مناسب للتخزين أو القراءة من ملفات أو قواعد البيانات.
⚠️ ملاحظات:
- يجب التأكد أن الـ JSON صالح قبل التحويل.
- إذا لم تستخدم
true
في json_decode
سترجع كائن (object) وليس مصفوفة.
🔹 44. الفرق بين array()
و []
✅ array()
:
$data = array(1, 2, 3);
PHP
✅ []
:
✅ الفروقات:
النوع | مدعوم من | الأفضلية |
---|
array() | منذ PHP 3 | أقدم |
[] | PHP 5.4+ | أكثر استخدامًا وحداثة |
✅ التوصية:
- استخدم
[]
دائمًا إن كانت نسختك PHP 5.4 أو أحدث (وهي الأغلب الآن).
🔹 45. Spread Operator داخل المصفوفات (PHP 7.4+)
🔁 يُستخدم لدمج أكثر من مصفوفة بسهولة داخل مصفوفة جديدة.
✅ مثال:
$a = [1, 2, 3];
$b = [4, 5, 6];
$combined = [...$a, ...$b];
print_r($combined); // [1, 2, 3, 4, 5, 6]
PHP
✅ مع قيم إضافية:
$newArray = [...$a, 99, 100];
PHP
✅ فوائد:
- قراءة أسهل من
array_merge()
.
- أكثر سرعة وأنيق بالشكل.
⚠️ محاذير:
- لا يمكن استخدامه مع مصفوفات غير مرقمة ترتيبًا (Associative) في PHP 7.4.
- في PHP 8+ صار يُستخدم مع المفاتيح المخصصة.
🔹 46. unpack()
– لتحويل بايتات إلى مصفوفة
📦 تستخدم هذه الدالة لتحليل سلسلة ثنائية (Binary String) إلى قيم مصفوفة.
✅ مثال بسيط:
$data = "\x10\x20"; // بيانات ثنائية
$result = unpack("C*", $data); // C = unsigned char
print_r($result);
// Array ( [1] => 16 [2] => 32 )
PHP
✅ الاستخدامات:
- يُستخدم في قراءة الملفات الثنائية (مثل الصور أو ملفات الـ ZIP).
- مفيد في برمجة الأنظمة المنخفضة المستوى أو تحليل الـ sockets.
✅ تنسيقات أخرى في unpack()
:
الرمز | الوصف |
---|
C | unsigned char |
n | unsigned short (big-endian) |
N | unsigned long (big-endian) |
V | unsigned long (little-endian) |
⚠️ محاذير:
- يجب أن يكون تنسيق البايتات متطابق مع ما تتوقعه.
- غير مناسب للمبتدئين في البداية إلا عند الحاجة المتخصصة.
✅ ملخص سريع:
رقم | الدالة / المفهوم | الغرض |
---|
42 | == vs === | مقارنة القيم والمصفوفات |
43 | json_encode() / decode() | تحويل بين JSON وPHP |
44 | array() vs [] | طريقة كتابة المصفوفات |
45 | ... Spread Operator | دمج مصفوفات بشكل أنيق |
46 | unpack() | تحليل بيانات ثنائية |