مقادیر عددی در PHP

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
۱خانه
۲مقدمه
۳نصب
۴شیوهٔ نوشتار
۵کامنت‌ها
۶متغیرها
۷دستورات چاپ
۸انواع داده
۹مقادیر رشته‌ای
۱۰اعداد
۱۱ثابت‌ها
۱۲عملگرها
۱۳دستورات if...else…elseif
۱۴دستور Switch
۱۵حلقه‌ها
۱۶توابع
۱۷آرایه‌ها
۱۸متغیرهای سراسری
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
مثال‌های PHP
مرجع PHP

در این فصل، ما نگاه عمیق‌تری به مقادیر اعداد صحیح، اعشاری و اعداد رشته‌ای (متنی) خواهیم داشت. [۱]

مقادیر عددی در PHP

چیزی که می‌بایست به آن توجه داشته باشید این است که PHP به صورت خودکار تبدیل نوع داده‌ها را انجام می‌دهد.

بنابراین، اگر شما یک متغیر را با یک مقدار عدد صحیح مقدار دهی کنید، نوع آن متغیر به صورت خودکار از نوع صحیح خواهد بود، اگر شما همان متغیر را با مقدار رشته‌ای (متنی) مقداردهی کنید، نوع متغیر به رشته‌ای (متنی) تغییرخواهد کرد.

تبدیل خودکار نوع داده‌ها ممکن است موجب بروز مشکل در کد شما شود.

مقادیر صحیح در PHP

یک عدد صحیح، عددی بدون اعشار است.

-۱۷۹۵۶۷ ،۱۰۳۵۸، -۲۵۶ ،۲۵۶ ،۲ از نوع صحیح هستند در حالی که ۱۵۰٫۶۷، ۱۰٫۰، ۷٫۵۶ از نوع اعشاری هستند.

بنابراین، یک نوع داده صحیح (به انگلیسی: Integer) یک عدد بدون اعشار بین -۲۱۴۷۴۸۳۶۴۸ و ۲۱۴۷۴۸۳۶۴۷ است. مقداری بزرگتر (و یا کوچکتر) از این، به عنوان عدد اعشاری float ذخیره می‌شود، زیرا که محدودیت یک عدد صحیح را نقض می‌کند.

نکته مهم دیگر این است که حتی نتیجه عبارت ۲٫۵*۴ که می‌شود ۱۰، به عنوان داده‌ای اعشاری ذخیره می‌شود زیرا که عملگر اول (۲٫۵)از نوع اعشاری است.

در زیر به برخی از قوانین این نوع داده اشاره می‌کنیم:

  • یک مقدار از نوع عدد صحیح، می‌بایست حداقل یک رقم داشته باشد
  • یک مقدار صحیح نباید قسمت اعشاری داشته باشد
  • یک عدد صحیح می‌تواند، مثبت یا منفی باشد
  • اعداد صحیح را می‌توان به سه صورت مشخص کرد: دسیمال (مبنای ۱۰)، هگزا دسیمال (مبنای ۱۶ با پیشوند ۰x) یا مبنای ۸ (با پیشوند ۰)

PHP توابع زیر را برای بررسی اینکه آیا یک متغیر از نوع عددصحیح (به انگلیسی: Integer) است، دارد:

  • is_int()
  • توابع is_integer() - نام مستعار تابع is_int()
  • توابع is_long() - نام مستعار تابع is_int()

مثال

در مثال زیر، بررسی می‌شود که آیا یک متغیر از نوع عدد صحیح است:

1 <?php
2 $x = 5985;
3 var_dump(is_int($x));
4 
5 $x = 59.85;
6 var_dump(is_int($x));
7 ?>


مشاهدهٔ نتیجه


اعداد اعشاری (به انگلیسی: float) در PHP

یک داده float یک عدد اعشاری و یا یک عدد در قالب عدد علمی است.

تمام ۲٫۰، ۲۵۶٫۴، ۱۰٫۳۵۸، ۷٫۶۴E+۵ ،۵٫۵۶E-۵ از نوع اعشاری هستند.

نوع داده اعشاری می‌تواند مقداری تا ۱٫۷۹۷۶۹۳۱۳۴۸۶۲۳E+۳۰۸ (را با توجه به پلتفرم) ذخیره کند و این نوع داده، دارای دقت حداکثر ۱۴ اعشار است.

PHP توابع زیر را برای بررسی اینکه آیا یک متغیر از نوع اعشاری است دارد:

  • is_float()
  • is_double() - نام مستعار تابع is_float()

مثال

مثال زیر، بررسی می‌کند که آیا یک متغیر از نوع float است یا نه:

1 <?php
2 $x = 10.365;
3 var_dump(is_float($x));
4 ?>


مشاهدهٔ نتیجه


مقدار بی نهایت (به انگلیسی: Infinity) در PHP

مقدار عددی که بزرگتر از PHP_FLOAT_MAX باشد به عنوان بی‌نهایت در نظر گرفته می‌شود.

PHP توابعی برای بررسی اینکه آیا یک مقدار عددی در محدوده بی‌نهایت است یا نه، دارد:

اما، تابع var_dump() مقدار و نوع داده را برمی‌گرداند:

مثال

مثال زیر بررسی می‌کند که آیا یک مقدر عددی در محدوده بی‌نهایت است یا خیر:

1 <?php
2 $x = 1.9e411;
3 var_dump($x);
4 ?>


مشاهدهٔ نتیجه


NaN در PHP

NaN (سرواژهٔ: Not a number به معنای عدد نیست) است.

NaN برای عملیات‌های ریاضی غیرممکن استفاده می‌شود.

PHP توابع زیر را برای بررسی اینکه آیا یک مقدار عدد است یا نه، دارد:

اما، تابع var_dump() مقدار و نوع داده را برمی‌گرداند:

مثال

عملیات ریاضی نامعتبر مقدار NaN را برمی‌گرداند:

1 <?php
2 $x = acos(8);
3 var_dump($x);
4 ?>


مشاهدهٔ نتیجه


مقادیر عدد متنی

از تابع is_numeric() می‌توان برای فهمیدن اینکه آیا یک متغیر از نوع عددی است یا خیر، استفاده کرد. این تابع در صورتی که متغیر از نوع عددی یا عدد متنی باشد مقدار true و در غیراینصورت مقدار false را برمی‌گرداند.

مثال

مثال زیر بررسی می‌کند که آیا یک متغیر از نوع عددی است یا نه:

 1 <?php
 2 $x = 5985;
 3 var_dump(is_numeric($x));
 4 
 5 $x = "5985";
 6 var_dump(is_numeric($x));
 7 
 8 $x = "59.85" + 100;
 9 var_dump(is_numeric($x));
10 
11 $x = "Hello";
12 var_dump(is_numeric($x));
13 ?>
نکته: در نسخهٔ ۷ PHP تابع is_numeric() برای اعداد متنی ای که به صورت هگزا دسیمال (همانند 0xf4c3b00c) نوشته شده‌اند مقدار false را برمی‌گرداند و دیگر به عنوان اعداد متنی شناخته نمی‌شوند.

تبدیل مقادیر رشته ای (متنی) و اعشاری به نوع صحیح (به انگلیسی: Integer)

گاهی اوقات شما نیاز دارید که یک مقدار عددی را به یک نوع داده دیگر تبدیل کنید.

تابع (int) , (integer)، یا intval() اغلب برای تبدیل یک مقدار به یک مقدار صحیح استفاده می‌شوند.

مثال

تبدیل مقادیر اعشاری، متنی به نوع صحیح:

 1 <?php
 2 // Cast float to int
 3 $x = 23465.768;
 4 $int_cast = (int)$x;
 5 echo $int_cast;
 6 
 7 echo "<br>";
 8 
 9 // Cast string to int
10 $x = "23465.768";
11 $int_cast = (int)$x;
12 echo $int_cast;
13 ?>


مشاهدهٔ نتیجه



منابع آموزشی