۱ رامهر
تابع intval
جامعه پی اچ پی ایجاد شده در ۱۲ خرداد ۱۴۰۲

سلام وقت بخیر

چرا وقتی ما به یک متغیر "23" مثلا میدهیم و اون متغیر رو intval چاپ میکنیم به ما عدد 23 رو در خروجی نمایش میده در صورتی که چون استرینگ عه باید 0 میداد؟

سلام رامهر عزیز

کار اصلی این تابع همینه که یک عبارت تحویل بگیره و سعی کنه تبدیل به int کنه وگرنه اگر عدد بگیره که در خروجی تفاوتی حاصل نمیشه.

حالا وقتی استرینگ داده میشه چک میکنه براساس الگوریتم و شرایطی که در این لینک آمده سعی میکنه تبدیل کنه:

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);                    // 10000000000
echo intval('1e10');                  // 10000000000
echo intval(0x1A);                    // 26
echo intval('0x1A');                  // 0
echo intval('0x1A', 0);               // 26
echo intval(42000000);                // 42000000
echo intval(420000000000000000000);   // -4275113695319687168
echo intval('420000000000000000000'); // 9223372036854775807
echo intval(42, 8);                   // 42
echo intval('42', 8);                 // 34
echo intval(array());                 // 0
echo intval(array('foo', 'bar'));     // 1
echo intval(false);                   // 0
echo intval(true);                    // 1
بهترین پاسخ
احمدرضا فاطمی کیا ۱۲ خرداد ۱۴۰۲، ۱۷:۵۸