تبدیل نوع (Type Casting)

تبدیل صریح و ضمنی انواع داده در PHP — (int)، (float)، (string)، (array)، (object) و رفتار تبدیل

تبدیل نوع چیست؟

تبدیل نوع (Type Casting) یعنی نوع یک متغیر را به نوع دیگری تغییر دهید. PHP دو نوع تبدیل دارد:

تبدیل صریح (Explicit Casting)

<?php
// تبدیل به عدد صحیح
$x = (int) "123";        // 123
$x = (int) 3.99;         // 3
$x = (int) true;         // 1

// تبدیل به عدد اعشاری
$x = (float) "3.14";     // 3.14
$x = (float) 5;          // 5.0

// تبدیل به رشته
$x = (string) 42;        // "42"
$x = (string) true;      // "1"
$x = (string) 3.14;      // "3.14"

// تبدیل به بولین
$x = (bool) 0;           // false
$x = (bool) "";          // false
$x = (bool) "text";      // true
$x = (bool) 1;           // true

// تبدیل به آرایه
$x = (array) "hello";    // ["hello"]

// تبدیل به شیء
$x = (object) ["a" => 1]; // stdClass { a: 1 }
?>

جدول تبدیل‌ها

ازبهنتیجه
(int)"123abc"int123
(int)"abc"int0
(int)3.99int3
(float)"3.14abc"float3.14
(string)truestring"1"
(string)falsestring""
(string)nullstring""
(array)nullarray[]

تبدیل ضمنی (Implicit)

PHP در عملیات‌ها خودش نوع را تبدیل می‌کند:

<?php
// رشته + عدد → عدد
echo "10" + 5;        // 15 (رشته به عدد تبدیل شد)

// رشته + رشته عددی
echo "10" + "20";     // 30

// بولین در شرط
if ("text") { ... }   // true (رشته غیرخالی)

// عدد در رشته
echo "تعداد: " . 5;   // "تعداد: 5"
?>

مقادیری که false می‌شوند

این مقادیر وقتی به bool تبدیل می‌شوند، false هستند:

مقدارتوضیح
falseبولین غلط
0عدد صفر
0.0اعشاری صفر
""رشته خالی
"0"رشته صفر
[]آرایه خالی
nullنال

توابع تبدیل

تابعتوضیح
intval("123")تبدیل به int
floatval("3.14")تبدیل به float
strval(42)تبدیل به string
boolval("text")تبدیل به bool
settype($var, "int")تغییر نوع متغیر

تبدیل با intval و مبنای دلخواه

<?php
echo intval("123");      // 123
echo intval("0xFF", 16); // 255 (هگزادسیمال)
echo intval("777", 8);   // 511 (هشت‌هشتی)
echo intval("1010", 2);  // 10 (باینری)
?>

این مبحث بخشی از دوره آموزش کامل PHP است.

ابزارهای مرتبط