بخش هفتم: توابع عددی در PHP

اعداد صحیح (integer)

اعداد غیراعشاری بین 2147483647 و  2147483648- را شامل می شوند و اعداد خارج از این محدوده به عنوان اعداد شناور شناخته می شوند. همچنین اعداد صحیح می توانند به سه فرمت مبنای 10 (دسیمال)، مبنای 8 (اوکتال) و مبنای 16 (هگزادسیمال) تخصیص یابند.

تابع is_int

برای تعیین اینکه مقدار متغیری عدد صحیح است یا خیر از این تابع استفاده می گردد. در صورتی که مقدار متغیر عدد صحیح باشد true و در غیر این صورت false برگردانده می شود.

مثال:

<?php
// Check if the type of a variable is integer   
$x = 51285;
var_dump(is_int($x));

echo "<br>";

// Check again... 
$x = 58.15;
var_dump(is_int($x));
?>

اعداد شناور (float)

این اعداد به صورت اعشاری یا توانی هستند و می توانند با حداکثر دقت 14 رقم اعشار ذخیره گردند.

تابع is_float

برای تعیین اینکه مقدار یک متغیر عددی شناور است یا خیر استفاده می گردد.

مثال:

<?php 
$x = 101.365;
var_dump(is_float($x));
?> 

اعداد بی نهایت (infinite)

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

توابع is_infinite و is_finite

تابع is_infinite در صورت بی نهایت بودن مقدار متغیر ورودی این تابع مقدار true و در غیر این صورت مقدار false را بر می گرداند. تابع is_finite عملکردی عکس تابع is_infinite دارد.

مثال:

<?php
echo is_infinite(5) . "<br>";
echo is_infinite(log(12)) . "<br>";
echo is_infinite(2000);
?> 

رشته های عددی

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

مثال:

<?php 
$x = 59185;
var_dump(is_numeric($x));

$x = "5385";
var_dump(is_numeric($x));

$x = "59.815” + 100;
var_dump(is_numeric($x));

$x = “Hello”;
var_dump(is_numeric($x));
?> 

تبدیل رشته ها و اعداد شناور به اعداد صحیح

برای این منظور معمولا از تابع intval یا (int) پیش از متغیر مورد نظر استفاده می شود.

مثال:

<?php
// Cast float to int 
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;

echo "<br>";

// Cast string to int
$x = "123465.768";
$int_cast = (int)$x;
echo $int_cast;

echo "<br>";

// Cast string to int
$x = "1265.768";
$int_cast = intval($x);
echo $int_cast;
?> 

تبدیل کاراکترهای عددی عربی و فارسی به انگلیسی

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

 <?php
 function convert2english($string) {
  $newNumbers = range(0, 9);
  // 1. Persian HTML decimal
  $persianDecimal = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
  // 2. Arabic HTML decimal
  $arabicDecimal = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩');
  // 3. Arabic Numeric
  $arabic = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩');
  // 4. Persian Numeric
  $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
  $len=strlen($string);
  if($len>0)
  {
    for($i=0;$i<$len;$i++)
    {
      $newstring = $string;
      $newstring =  str_replace($persianDecimal, $newNumbers, $newstring);
      $newstring =  str_replace($arabicDecimal, $newNumbers, $newstring);
      $newstring =  str_replace($arabic, $newNumbers, $newstring);
      $string = str_replace($persian, $newNumbers, $newstring);
    }

  }

return $string;

}
?>

پست های مرتبط

Leave a Comment