أنواع البيانات في PHP

من موسوعة حسوب
< PHP

لا يعيّن المبرمج نوع المتغير عادةً، بل تُعيِّنُه لغة PHP أثناء التنفيذ بالاعتماد على محتوى المتغير المستخدم.

ملاحظة: استخدم دالة var_dump()‎ للتحقق من نوع وقيمة تعبير معين، واستخدم الدالة gettype()‎ للحصول على نوع المتغير عند الحاجة لغرض التنقيح، وللتأكد من نوع المتغير فاستخدم مجموعة دوال is_type وهذه بعض الأمثلة عنها:

<?php
$a_bool = TRUE;   // boolean
$a_str  = "foo";  // string
$a_str2 = 'foo';  // string
$an_int = 12;     // integer

echo gettype($a_bool); // الناتج:  boolean
echo gettype($a_str);  // الناتج:  string

// إذا كان العدد صحيحًا، فأضف إليه 4
if (is_int($an_int)) {
    $an_int += 4;
}

// اطبع $a_bool إذا كان المتغير سلسلةً نصيةً.
// (لن يطبع شيء)
if (is_string($a_bool)) {
    echo "String: $a_bool";
}
?>

لفرض تحويل نوع المتغير إلى نوع آخر، يمكنك استخدام طريقة cast، أو عبر الدالة settype()‎.

لاحظ أنه يمكن تغيير نوع المتغير حسب القيمة الموجودة به في بعض الحالات بالاعتماد على نوعه في ذلك الوقت، للمزيد من المعلومات، يمكنك الإطلاع على صفحة التعامل مع الأنواع وجدول مقارنة الأنواع، لأنها تظهر بعض الأمثلة على ذلك.

أنواع البيانات البسيطة (scalar)

القيم المنطقية (boolean)

القيم المنطقية (boolean) من أبسط الأنواع، فالتعبير المنطقي يُعبِّر عن صحّة تعبيرٍ ما، فإما أن تكون قيمة التعبير صحيحةً TRUE أو خطأً FALSE.

الأعداد الصحيحة (integer)

العدد الصحيح هو عدد من المجموعة ℤ = {…, -2, -1, 0, 1, 2, …}‎‎.

الأعداد العشرية (أو الكسرية، أي float/double)

الأعداد العشرية (تعرف أيضا بالأعداد الحقيقة real number أو doubles أو float) هي الأعداد التي تملك قسمًا عشريًا إضافةً إلى القسم الصحيح.

السلاسل النصيّة (string)

السلسلة النصية هي سلسلة من الأحرف، إذ يكون كل حرف ممثلًا ببايت.

أنواع البيانات المركبة

المصفوفات (array)

المصفوفة في PHP هي خريطة (map) مرتّبة، والخريطة هي نوع ترتبط فيه القيم مع المفاتيح.

الكائنات (object)

تُنشَأ الكائنات في PHP بتهيئة صنف (class).

رد النداء (callable)

يمكن أن الإشارة إلى رد النداء (Callbacks) باستخدام نوع البيانات (callable) منذ إصدار PHP 5.4، وهي الدوال التي تستدعيها دوال أخرى لإجراء عمليات.

القيم التكرارية (iterable)

إن المتغير التكراري Iterable هو شبه نوع (نوع زائف، pseudo-type) عُرِّفَ في الإصدار 7.1 من PHP وهو يقبل أية مصفوفة أو كائن يستخدم واجهة Traversable (أي Traversable interface)، كلا النوعين يمكن تكراره باستخدام حلقة foreach ويمكن أن يُستخدم مع تعبير yield داخل دالة مولِّدة (generator).

أنواع البيانات الخاصة

مورد (resource)

المورد هو متغير خاص يحمل مرجعيةً إلى مورد خارجي.

لا شيء (NULL)

تمثل القيمة الخاصة NULL متغيرًا دون قيمة، فالقيمة NULL هي القيمة الوحيد الممكنة من نوع البيانات null.

أشباه الأنواع (الأنواع الزائفة [pseudo-types])

أشباه الأنواع هي كلمات مفتاحيَّة مستخدمة في توثيق PHP لتحديد الأنواع أو القيم التي يمكن أن يمتلكها المعامل ولا يمكن استخدامها في الشيفرات البرمجية.

  • mixed
  • number
  • callback ‏(أيcallable)
  • array|object
  • void

وشبه المتغير ‎$…‎.

ملاحظة: ستجد بعض الإشارات إلى النوع double في هذا الدليل، والذي هو نفسه float، والاسمان موجودان لأسباب تاريخية.

مصادر