الفرق بين المراجعتين ل"PHP/intval"

من موسوعة حسوب
< PHP
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>intval()</code>‎ في PHP}}</noinclude>')
 
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 1: سطر 1:
 
<noinclude>{{DISPLAYTITLE:الدالة <code>intval()</code>‎ في PHP}}</noinclude>
 
<noinclude>{{DISPLAYTITLE:الدالة <code>intval()</code>‎ في PHP}}</noinclude>
 +
(PHP 4, PHP 5, PHP 7)
 +
 +
تُعطي الدالة <code>intval()‎‎‎</code> قيمة من نوع [[PHP/integer|عدد صحيح]] (integer) لمتغيّر ما.
 +
 +
== الوصف ==
 +
<syntaxhighlight lang="php">
 +
int intval ( mixed $var [, int $base = 10 ] )
 +
</syntaxhighlight>تُعطي قيمة من نوع [[PHP/integer|عدد صحيح]] للمتغيّر <code>var</code>، وذلك اعتمادًا على مُعامِل الأساس <code>base</code> للتحويل (القيمة الافتراضيّة هي الأساس 10 والتي تُحوِّل للنظام العشري). لا يجب استخدام الدالة <code>intval()‎</code> مع الكائنات، وينتج عن فعل ذلك خطأ من مستوى <code>E_NOTICE</code> وإعادة القيمة <code>1</code>.
 +
 +
== المعاملات ==
 +
 +
=== <code>var</code> ===
 +
القيمة العدديّة التي ستُحوَّل إلى عدد صحيح.
 +
 +
=== <code>base</code> ===
 +
الأساس المُستخدَم للتحويل.
 +
 +
ملاحظة: إذا كانت قيمة الأساس تساوي الصّفر، يُحدَّد الأساس عبر نَسَق المُعامِل <code>var</code>:
 +
* إن كانت السّلسلة النصّيّة تتضمن البادئة <code>"0x"</code> (أو <code>"0X"</code>)، فسيُعدّ الأساس 16 (نظام ست عشري).
 +
* إن كانت السّلسلة النصّيّة تبدأ بالقيمة <code>"0"</code>، فسيُعدّ الأساس 8 (نظام ثماني).
 +
* إن لم تشمل السّلسلة أي من هذه الحالات فسيُعدّ الأساس 10 (نظام عشري).
 +
 +
== القيم المعادة ==
 +
قيمة العدد الصّحيح للمُعامِل <code>var</code> عند النّجاح، أو <code>0</code> عند الفشل. تُعيد المصفوفات الفارغة القيمة <code>0</code> وغير الفارغة القيمة <code>1</code>.
 +
 +
تعتمد القيمة القصوى على النّظام، حيث تمتلك أنظمة 32 بت مجال أعظمي للعدد الصّحيح المؤشر (signed) من ‎<code>-2147483648</code> إلى <code>2147483647</code>، فعلى سبيل المثال تُعيد الدالة <code>intval('1000000000000')‎</code> القيمة <code>2147483647</code> على هذه الأنظمة، أمّا القيمة القصوى لعدد صحيح مؤشر على أنظمة 64 بت هي <code>9223372036854775807</code>.
 +
 +
تُعيد السّلاسل النصّيّة القيمة <code>0</code> غالبًا على الرّغم من اعتماد ذلك على الأحرف الموجودة في أقصى يسار السّلسلة،  تنطبق هنا القواعد الشّائعة في [https://wiki.hsoub.com/PHP/integer#.D8.A7.D9.84.D8.AA.D8.AD.D9.88.D9.8A.D9.84_.D8.A5.D9.84.D9.89_.D8.B9.D8.AF.D8.AF_.D8.B5.D8.AD.D9.8A.D8.AD قلب الأعداد الصّحيحة].
 +
 +
== أمثلة ==
 +
المثال 1: أمثلة على الدالة <code>intval()</code>‎‎‎
 +
 +
تستند الأمثلة التّالية إلى أنظمة 32 بت.<syntaxhighlight lang="php">
 +
<?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
 +
?>
 +
 +
</syntaxhighlight>
 +
 +
== ملاحظات ==
 +
ليس لمُعامِل الأساس <code>base</code> أي تأثير ما لم يكن المُعامِل <code>var</code> سلسلةً نصّيّةً.
 +
 +
== سجل التغييرات ==
 +
{| class="wikitable"
 +
!الإصدار
 +
!الوصف
 +
|-
 +
|5.1.0
 +
|رمي الخطأ <code>E_NOTICE</code> وإعادة القيمة <code>1</code> عند تمرير كائن للمُعامِل <code>var</code>
 +
|}
 +
 +
== انظر أيضًا ==
 +
* الدالة <code>[[PHP/boolval|boolval()‎]]</code>: الحصول على القيمة المنطقيّة (boolean) لمتغيّر ما.
 +
* الدالة <code>[[PHP/floatval|floatval()‎]]</code>: الحصول على قيمة من نوع عدد عشري (float) لمتغيّر ما.
 +
* الدالة <code>[[PHP/is numeric|is_numeric()‎]]</code>: معرفة إذا ما كان المتغيّر عددًا أو سلسلة نصّيّة عدديّة.
 +
* الدالة <code>[[PHP/strval|strval()‎]]</code>: الحصول على قيمة من نوع سلسلة نصّيّة (string) لمتغيّر ما.
 +
* الدالة <code>[[PHP/settype|settype()‎]]</code>: تعيين نوع متغيّر ما.
 +
* [[PHP/type juggling|التّعامل مع الأنواع في PHP]].
 +
 +
== مصادر ==
 +
* [http://php.net/manual/en/function.intval.php صفحة الدالة intval في توثيق PHP الرسمي].
 +
[[تصنيف:PHP]]
 +
[[تصنيف:PHP Function]]
 +
[[تصنيف:PHP Variable Handling]]

المراجعة الحالية بتاريخ 11:23، 16 أبريل 2018

(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.

مصادر