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

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

(PHP 4, PHP 5, PHP 7)

تُعطي الدالة intval()‎‎‎ قيمة من نوع عدد صحيح (integer) لمتغيّر ما.

الوصف

int intval ( mixed $var [, int $base = 10 ] )

تُعطي قيمة من نوع عدد صحيح للمتغيّر var، وذلك اعتمادًا على مُعامِل الأساس base للتحويل (القيمة الافتراضيّة هي الأساس 10 والتي تُحوِّل للنظام العشري). لا يجب استخدام الدالة intval()‎ مع الكائنات، وينتج عن فعل ذلك خطأ من مستوى E_NOTICE وإعادة القيمة 1.

المعاملات

var

القيمة العدديّة التي ستُحوَّل إلى عدد صحيح.

base

الأساس المُستخدَم للتحويل.

ملاحظة: إذا كانت قيمة الأساس تساوي الصّفر، يُحدَّد الأساس عبر نَسَق المُعامِل var:

  • إن كانت السّلسلة النصّيّة تتضمن البادئة "0x" (أو "0X")، فسيُعدّ الأساس 16 (نظام ست عشري).
  • إن كانت السّلسلة النصّيّة تبدأ بالقيمة "0"، فسيُعدّ الأساس 8 (نظام ثماني).
  • إن لم تشمل السّلسلة أي من هذه الحالات فسيُعدّ الأساس 10 (نظام عشري).

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

قيمة العدد الصّحيح للمُعامِل var عند النّجاح، أو 0 عند الفشل. تُعيد المصفوفات الفارغة القيمة 0 وغير الفارغة القيمة 1.

تعتمد القيمة القصوى على النّظام، حيث تمتلك أنظمة 32 بت مجال أعظمي للعدد الصّحيح المؤشر signed من ‎-2147483648 إلى 2147483647، فعلى سبيل المثال تُعيد الدالة intval('1000000000000')‎ القيمة 2147483647 على هذه الأنظمة، أمّا القيمة القصوى لعدد صحيح مؤشر على أنظمة 64 بت هي 9223372036854775807.

تُعيد السّلاسل النصّيّة القيمة 0 غالبًا على الرّغم من اعتماد ذلك على الأحرف الموجودة في أقصى يسار السّلسلة،  تنطبق هنا القواعد الشّائعة في قلب الأعداد الصّحيحة.

أمثلة

المثال 1: أمثلة على الدالة intval()‎‎‎

تستند الأمثلة التّالية إلى أنظمة 32 بت.

<?php
echo intval(42);                      // 42
echo intval(4.2);                     // 4
echo intval('42');                    // 42
echo intval('+42');                   // 42
echo intval('-42');                   // -42
echo intval(042);                     // 34
echo intval('042');                   // 42
echo intval(1e10);                    // 1410065408
echo intval('1e10');                  // 1
echo intval(0x1A);                    // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // 0
echo intval('420000000000000000000'); // 2147483647
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
?>

ملاحظات

ليس لمُعامِل الأساس base أي تأثير ما لم يكن المُعامِل var سلسلةً نصّيّةً.

سجل التغييرات

الإصدار الوصف
5.1.0 رمي الخطأ E_NOTICE وإعادة القيمة 1 عند تمرير كائن للمُعامِل var

انظر أيضًا

  • الدالة boolval()‎: الحصول على القيمة المنطقيّة (boolean) لمتغيّر ما.
  • الدالة floatval()‎: الحصول على قيمة من نوع عدد عشري (float) لمتغيّر ما.
  • الدالة is_numeric()‎: معرفة إذا ما كان المتغيّر عددًا أو سلسلة نصّيّة عدديّة.
  • الدالة strval()‎: الحصول على قيمة من نوع سلسلة نصّيّة (string) لمتغيّر ما.
  • الدالة settype()‎: تعيين نوع متغيّر ما.
  • التّعامل مع الأنواع في PHP.

مصادر