تبدیل نوع (Casting)
گاهی لازم است نوعِ یک «متغیر (Variable)» را عوض کنیم. این کار می شود «تبدیل نوع (Casting)». مثل وقتی نمره متنی را به عدد تبدیل می کنی تا جمع بزنی.
روش تبدیل نوع در PHP
برای تبدیل، جلوی مقدار از پرانتز نوع استفاده کن. این ها پشتیبانی می شوند:
(string)تبدیل به رشته(int)تبدیل به عدد صحیح(float)تبدیل به اعشاری(bool)تبدیل به بولی(array)تبدیل به آرایه(object)تبدیل به شیء(unset)تبدیل به NULL
تبدیل به رشته (String)
نوع ها را به رشته تبدیل کن و با var_dump() نتیجه را ببین.
$a = 5;
$b = 5.34;
$c = "hello";
$d = true;
$e = NULL;
$a = (string) $a;
$b = (string) $b;
$c = (string) $c;
$d = (string) $d;
$e = (string) $e;
var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
var_dump($e);
تبدیل به عدد صحیح (Integer)
با (int) می توان مقدار را به صحیح تبدیل کرد.
$a = 5;
$b = 5.34;
$c = "25 kilometers";
$d = "kilometers 25";
$e = "hello";
$f = true;
$g = NULL;
$a = (int) $a;
$b = (int) $b;
$c = (int) $c;
$d = (int) $d;
$e = (int) $e;
$f = (int) $f;
$g = (int) $g;
تبدیل به اعشاری (Float)
برای اعشاری از (float) استفاده کن.
$a = 5;
$b = 5.34;
$c = "25 kilometers";
$d = "kilometers 25";
$e = "hello";
$f = true;
$g = NULL;
$a = (float) $a;
$b = (float) $b;
$c = (float) $c;
$d = (float) $d;
$e = (float) $e;
$f = (float) $f;
$g = (float) $g;
تبدیل به بولی (Boolean)
بولی (Boolean) یعنی درست یا نادرست. صفر، خالی، یا NULL به نادرست تبدیل می شود.
$a = 5;
$b = 5.34;
$c = 0;
$d = -1;
$e = 0.1;
$f = "hello";
$g = "";
$h = true;
$i = NULL;
$a = (bool) $a;
$b = (bool) $b;
$c = (bool) $c;
$d = (bool) $d;
$e = (bool) $e;
$f = (bool) $f;
$g = (bool) $g;
$h = (bool) $h;
$i = (bool) $i;
نکته: مقدار -1 هم به «درست» تبدیل می شود.
تبدیل به آرایه (Array)
اغلب نوع ها به آرایه تک عنصری تبدیل می شوند. مقدار NULL آرایه خالی می شود.
$a = 5;
$b = 5.34;
$c = "hello";
$d = true;
$e = NULL;
$a = (array) $a;
$b = (array) $b;
$c = (array) $c;
$d = (array) $d;
$e = (array) $e;
تبدیل شیء به آرایه
شیء به آرایه انجمنی تبدیل می شود؛ نام ویژگی، کلید می شود.
class Car {
public $color;
public $model;
public function __construct($color, $model) {
$this->color = $color;
$this->model = $model;
}
public function message() {
return "My car is a " . $this->color . " " . $this->model . "!";
}
}
$myCar = new Car("red", "Volvo");
$myCar = (array) $myCar;
var_dump($myCar);
تبدیل به شیء (Object)
اغلب نوع ها به شیئی با ویژگی scalar تبدیل می شوند. آرایه اندیسی، ویژگی های عددی می گیرد.
$a = 5;
$b = 5.34;
$c = "hello";
$d = true;
$e = NULL;
$a = (object) $a;
$b = (object) $b;
$c = (object) $c;
$d = (object) $d;
$e = (object) $e;
$a = array("Volvo", "BMW", "Toyota");
$b = array("Peter" => "35", "Ben" => "37", "Joe" => "43");
$a = (object) $a;
$b = (object) $b;
تبدیل به NULL
با (unset) مقدار به NULL تبدیل می شود.
$a = 5;
$b = 5.34;
$c = "hello";
$d = true;
$e = NULL;
$a = (unset) $a;
$b = (unset) $b;
$c = (unset) $c;
$d = (unset) $d;
$e = (unset) $e;
گام های عملی
- یک مقدار نمونه بساز.
- نوعِ فعلی را با
var_dump()ببین. - با پرانتز نوع، آن را تبدیل کن.
جمع بندی سریع
- برای تبدیل، از پرانتز نوع استفاده کن.
- صفر، خالی و NULL در بولی، نادرست می شود.
- آرایه نتیجه معمولاً تک عنصری است.
- شیء به آرایه انجمنی تبدیل می شود.
- تبدیل نوع در PHP را همیشه با نمونه آزمایش کن.
اعداد در PHP را برای تفاوت int و float ببین. سپس به ریاضیات در PHP برو برای محاسبات.