PHP Casting

در PHP، Casting (تبدیل نوع داده) یعنی تغییر نوع یک مقدار از یک داده به نوع دیگر.
برای مثال: تبدیل رشته به عدد، عدد به رشته، یا عدد به float.

🔹 1. تبدیل ضمنی (Type Juggling)

PHP در برخی مواقع خودش به‌طور خودکار نوع داده را تغییر می‌دهد.

$x = "10"; // رشته $y = 5; // عدد $z = $x + $y; var_dump($z); // int(15)

📌 در این مثال "10" (string) خودکار به عدد تبدیل شد.

🔹 2. تبدیل صریح (Type Casting)

برای تبدیل مستقیم نوع داده‌ها می‌توان از پرانتز استفاده کرد:

2.1 تبدیل به Integer → (int) یا (integer)

$x = 10.6; $y = (int)$x; var_dump($y); // int(10)

2.2 تبدیل به Float → (float) یا (double) یا (real)

$x = "3.14"; $y = (float)$x; var_dump($y); // float(3.14)

2.3 تبدیل به String → (string)

$x = 100; $y = (string)$x; var_dump($y); // string(3) "100"

2.4 تبدیل به Boolean → (bool) یا (boolean)

$x = 0; $y = (bool)$x; var_dump($y); // bool(false)

📌 قوانین Boolean Casting:

  • 0, 0.0, "", "0", null, []false

  • همه موارد دیگر → true

2.5 تبدیل به Array → (array)

$x = "PHP"; $y = (array)$x; var_dump($y); // array(1) { [0]=> string(3) "PHP" }

2.6 تبدیل به Object → (object)

$x = "Hello"; $y = (object)$x; var_dump($y); // object(stdClass)#1 (1) { ["scalar"]=> string(5) "Hello" }

🔹 3. تابع ()settype

به‌جای casting می‌توانیم از تابع ()settype استفاده کنیم.

$x = "100"; settype($x, "integer"); var_dump($x); // int(100)

🔹 4. مثال ترکیبی

$value = "25.5"; // به int echo (int)$value; // 25 // به float echo (float)$value; // 25.5 // به string echo (string)$value; // "25.5"

✅ خلاصه

  • Type Juggling → تغییر خودکار نوع توسط PHP

  • Casting صریح(int), (float), (string), (bool), (array), (object)

  • تابع ()settype → تغییر نوع متغیر به‌صورت دستی