وقتی در PHP یک متغیر ایجاد میکنیم، مقداری را داخل آن قرار میدهیم. این مقدار میتواند یک عدد، متن، مقدار منطقی، آرایه، آبجکت یا نوع دیگری از داده باشد.
به نوع دادهای که یک Variable در PHP نگهداری میکند، Data Type گفته میشود.
برای مثال:
$name = "Ali";
$age = 25;
$price = 99.99;
$isActive = true;
در این مثال:
$nameاز نوع String است.$ageاز نوع Integer است.$priceاز نوع Float است.$isActiveاز نوع Boolean است.
شناخت انواع داده در PHP یکی از مفاهیم پایه و بسیار مهم برای یادگیری این زبان است؛ زیرا تقریباً تمام برنامههای PHP با دادهها سروکار دارند.
در این آموزش با مهمترین Data Type های PHP، تفاوت آنها، نحوه استفاده و روش تشخیص نوع داده آشنا میشویم.
# Data Type در PHP چیست؟
Data Type مشخص میکند دادهای که در یک Variable قرار گرفته چه نوعی دارد و PHP چگونه باید با آن رفتار کند.
برای مثال:
$name = "CMSNevis";
در اینجا مقدار یک متن است، بنابراین نوع داده آن String است.
اما:
$count = 100;
یک عدد صحیح است و نوع آن Integer خواهد بود.
یا:
$isPublished = true;
نوع داده Boolean دارد.
شناخت نوع داده هنگام انجام عملیات مختلف اهمیت زیادی دارد؛ زیرا رفتار PHP برای انواع مختلف داده میتواند متفاوت باشد.
# انواع داده در PHP
PHP چندین نوع داده اصلی دارد که میتوان آنها را به دو گروه کلی تقسیم کرد:
Scalar Types
شامل:
- String
- Integer
- Float
- Boolean
Compound Types
شامل:
- Array
- Object
همچنین PHP انواع دیگری مانند:
- NULL
- Resource
را نیز دارد.
در ادامه هرکدام را بررسی میکنیم.
# 1. String در PHP
String برای نگهداری متن استفاده میشود.
مثلاً:
$name = "Ali";
یا:
$message = "Hello World";
String را میتوان با Single Quote یا Double Quote تعریف کرد:
$name = 'Ali';
و:
$name = "Ali";
هر دو Syntax معتبر هستند.
# تفاوت Single Quote و Double Quote در PHP
یکی از تفاوتهای مهم این دو Syntax نحوه برخورد PHP با Variableهاست.
مثلاً:
$name = "Ali";
echo "Hello $name";
خروجی:
Hello Ali
اما:
echo 'Hello $name';
در این حالت Variable به همان شکل متنی نمایش داده میشود.
برای همین در PHP باید هنگام انتخاب Single Quote و Double Quote به نحوه استفاده از Variableها و Escape Characterها توجه کنید.
# اتصال Stringها در PHP
برای اتصال چند String معمولاً از عملگر . استفاده میشود.
مثلاً:
$firstName = "Ali";
$lastName = "Ahmadi";
$fullName = $firstName . " " . $lastName;
echo $fullName;
خروجی:
Ali Ahmadi
این عملیات را Concatenation مینامیم.
# String چندخطی در PHP
PHP روشهایی برای نگهداری متنهای چندخطی نیز دارد.
یکی از این روشها Heredoc است:
$text = <<<TEXT
Hello
Welcome to CMSNevis
TEXT;
echo $text;
Heredoc در زمانی مفید است که با متنهای طولانیتر سروکار داریم.
# 2. Integer در PHP
Integer برای نگهداری اعداد صحیح استفاده میشود.
مثلاً:
$age = 25;
یا:
$count = 100;
اعداد منفی نیز Integer هستند:
$temperature = -10;
همچنین صفر:
$number = 0;
جزو Integer محسوب میشود.
# انجام عملیات ریاضی با Integer
میتوان روی اعداد صحیح عملیات مختلف انجام داد:
$a = 10;
$b = 5;
echo $a + $b;
echo $a - $b;
echo $a * $b;
برای تقسیم باید به نوع نتیجه نیز توجه داشته باشیم.
# 3. Float در PHP
Float برای نگهداری اعداد دارای بخش اعشاری استفاده میشود.
مثلاً:
$price = 99.99;
یا:
$average = 18.75;
مثال:
$width = 10.5;
$height = 5.2;
$area = $width * $height;
echo $area;
# تفاوت Integer و Float
تفاوت اصلی این دو نوع داده در وجود بخش اعشاری است.
مثلاً:
$number1 = 10;
یک Integer است.
اما:
$number2 = 10.5;
یک Float است.
در محاسبات مالی واقعی باید توجه ویژهای به نحوه نمایش و محاسبه اعداد اعشاری داشته باشید؛ زیرا Floating Point ذاتاً محدودیتهای دقت خاص خود را دارد.
# 4. Boolean در PHP
Boolean فقط دو مقدار دارد:
true
false
مثلاً:
$isActive = true;
یا:
$isAdmin = false;
Boolean معمولاً در شرطها بسیار کاربرد دارد.
مثلاً:
$isAdmin = true;
if ($isAdmin) {
echo "Admin Panel";
}
# Boolean در شرطها
یکی از مهمترین کاربردهای Boolean استفاده از آن در شرطهاست:
$isLoggedIn = true;
if ($isLoggedIn) {
echo "Welcome";
} else {
echo "Please Login";
}
این ساختار در سیستمهای احراز هویت، پنل مدیریت، فروشگاهها و بسیاری از Applicationهای وب استفاده میشود.
# 5. Array در PHP
Array برای نگهداری چند مقدار در یک Variable استفاده میشود.
مثلاً:
$colors = ["red", "green", "blue"];
در اینجا یک Array داریم که سه مقدار را نگهداری میکند.
میتوانیم به عناصر Array دسترسی داشته باشیم:
echo $colors[0];
خروجی:
red
Index آرایه در این مثال از صفر شروع میشود.
# Array عددی در PHP
یک Array ساده:
$users = [
"Ali",
"Reza",
"Sara"
];
دسترسی:
echo $users[0];
echo $users[1];
echo $users[2];
خروجی:
Ali
Reza
Sara
# Associative Array در PHP
در PHP میتوان بهجای Index عددی از Key استفاده کرد.
مثلاً:
$user = [
"name" => "Ali",
"age" => 25,
"city" => "Tehran"
];
حالا:
echo $user["name"];
خروجی:
Ali
Associative Array یکی از پرکاربردترین ساختارهای داده در PHP است.
# Nested Array در PHP
یک Array میتواند Array دیگری را نیز نگهداری کند:
$users = [
[
"name" => "Ali",
"age" => 25
],
[
"name" => "Sara",
"age" => 30
]
];
در پروژههای واقعی، دادههایی که از API یا Database دریافت میشوند ممکن است ساختاری مشابه داشته باشند.
# 6. Object در PHP
Object یکی از مهمترین مفاهیم PHP است و مستقیماً با برنامهنویسی شیءگرا یا OOP ارتباط دارد.
مثلاً:
class User
{
public string $name;
}
$user = new User();
$user->name = "Ali";
در این مثال:
User
یک Class است و:
$user
یک Object از آن Class است.
Objectها امکان مدلسازی موجودیتهای واقعی و ساختارهای پیچیدهتر را فراهم میکنند.
مبحث Object و OOP در مقاله اختصاصی «OOP در PHP» بهصورت کاملتر بررسی خواهد شد.
# 7. NULL در PHP
NULL نشاندهنده نبودن یک مقدار مشخص است.
مثلاً:
$name = null;
در اینجا Variable وجود دارد، اما مقدار آن NULL است.
برای بررسی Null میتوان از is_null() استفاده کرد:
$name = null;
if (is_null($name)) {
echo "Value is null";
}
همچنین میتوان از مقایسه دقیق استفاده کرد:
if ($name === null) {
echo "Value is null";
}
# 8. Resource در PHP
Resource یک نوع خاص از داده در PHP است که میتواند به یک منبع خارجی اشاره کند.
در نسخههای مختلف PHP و Extensionهای مختلف ممکن است نحوه استفاده از Resource متفاوت باشد.
Resource را معمولاً در سناریوهایی مانند برخی Handleهای سیستم یا منابع خارجی مشاهده میکنیم.
برای بیشتر برنامهنویسان مبتدی، تمرکز اصلی باید روی String، Integer، Float، Boolean، Array، Object و NULL باشد.
# چگونه نوع داده را در PHP تشخیص دهیم؟
PHP چند Function کاربردی برای بررسی نوع داده دارد.
یکی از مهمترین آنها:
var_dump()
است.
مثلاً:
$name = "Ali";
var_dump($name);
خروجی چیزی شبیه این خواهد بود:
string(3) "Ali"
# استفاده از var_dump()
برای بررسی دقیقتر:
$age = 25;
$price = 99.99;
$isActive = true;
var_dump($age);
var_dump($price);
var_dump($isActive);
خروجی اطلاعاتی درباره نوع و مقدار Variable نمایش میدهد.
var_dump() یکی از ابزارهای بسیار مفید برای Debug کردن PHP است.
# استفاده از gettype()
Function دیگری که میتوان برای تشخیص نوع داده استفاده کرد:
gettype()
مثلاً:
$name = "Ali";
echo gettype($name);
خروجی:
string
مثلاً:
$age = 25;
echo gettype($age);
خروجی:
integer
# بررسی نوع داده با is_string()
PHP Functionهای اختصاصی برای بررسی انواع داده نیز دارد.
مثلاً:
$name = "Ali";
if (is_string($name)) {
echo "This is a string";
}
# بررسی Integer
$age = 25;
if (is_int($age)) {
echo "This is an integer";
}
# بررسی Float
$price = 99.99;
if (is_float($price)) {
echo "This is a float";
}
# بررسی Boolean
$isActive = true;
if (is_bool($isActive)) {
echo "This is boolean";
}
# بررسی Array
$users = ["Ali", "Sara"];
if (is_array($users)) {
echo "This is an array";
}
# بررسی Object
برای بررسی Object میتوان از:
is_object()
استفاده کرد.
مثلاً:
class User
{
}
$user = new User();
if (is_object($user)) {
echo "This is an object";
}
# Type Casting در PHP چیست؟
گاهی لازم است نوع یک داده را به نوع دیگری تبدیل کنیم.
به این کار Type Casting گفته میشود.
مثلاً:
$number = "100";
$number = (int) $number;
var_dump($number);
حالا $number یک Integer خواهد بود.
# تبدیل String به Integer
مثلاً:
$value = "250";
$number = (int) $value;
var_dump($number);
خروجی:
int(250)
# تبدیل Integer به String
$number = 250;
$text = (string) $number;
var_dump($text);
خروجی:
string(3) "250"
# تبدیل به Float
$value = "99.99";
$price = (float) $value;
var_dump($price);
# تبدیل به Boolean
$value = 1;
$result = (bool) $value;
var_dump($result);
در PHP تبدیل بعضی مقادیر به Boolean دارای قواعد مشخصی است؛ بنابراین هنگام کار با دادههای ورودی باید رفتار Type Conversion را بهخوبی بشناسید.
# Type Juggling در PHP چیست؟
PHP در بسیاری از شرایط میتواند نوع دادهها را بهصورت خودکار تغییر دهد.
به این رفتار Type Juggling گفته میشود.
مثلاً:
$value = "10";
$result = $value + 5;
var_dump($result);
PHP در این عملیات مقدار رشتهای را در یک عملیات عددی در نظر میگیرد و نتیجه عددی خواهد بود.
این ویژگی PHP را انعطافپذیر میکند، اما در کدهای حساس باید مراقب تبدیلهای ضمنی باشید.
# Type Juggling و مقایسه در PHP
در PHP تفاوت مهمی بین:
==
و:
===
وجود دارد.
عملگر == مقایسه Loose انجام میدهد.
اما:
===
مقایسه Strict انجام میدهد و مقدار و نوع داده را نیز در نظر میگیرد.
مثلاً:
$value = 10;
if ($value === 10) {
echo "Equal";
}
در برنامههای حرفهای، استفاده آگاهانه از مقایسه Strict معمولاً انتخاب مناسبتری است، مخصوصاً زمانی که نوع داده اهمیت دارد.
# تفاوت == و === در PHP
مثال:
$value = "10";
var_dump($value == 10);
var_dump($value === 10);
در مقایسه اول، PHP تبدیل نوع لازم را در مقایسه Loose انجام میدهد.
اما در مقایسه دوم، نوع داده نیز باید مطابق باشد.
بنابراین:
== → مقایسه Loose
=== → مقایسه Strict
شناخت این تفاوت برای جلوگیری از خطاهای منطقی و برخی مشکلات امنیتی اهمیت دارد.
# Type Declaration در PHP
در PHP مدرن میتوان نوع پارامترهای Function و مقدار بازگشتی را مشخص کرد.
مثلاً:
function sum(int $a, int $b): int
{
return $a + $b;
}
در اینجا انتظار داریم:
$a → int
$b → int
return → int
باشد.
این قابلیت به خوانایی و قابل پیشبینی بودن کد کمک میکند.
# Nullable Type در PHP
گاهی یک مقدار میتواند هم یک Type مشخص و هم null باشد.
مثلاً:
function findUser(?int $id): ?string
{
// ...
}
علامت ? نشان میدهد مقدار میتواند Type موردنظر یا NULL باشد.
برای مثال:
?int
یعنی:
int یا null
# Union Type در PHP
در نسخههای جدید PHP میتوان بیش از یک نوع را نیز برای بعضی Declarationها مشخص کرد.
مثلاً:
function formatValue(int|float $value): string
{
return (string) $value;
}
در اینجا $value میتواند Integer یا Float باشد.
Union Type در پروژههای مدرن PHP برای تعریف دقیقتر قرارداد Functionها کاربرد دارد.
# Strict Types در PHP
برای سختگیرانهتر کردن رفتار Typeها میتوان در ابتدای فایل PHP از:
declare(strict_types=1);
استفاده کرد.
مثلاً:
<?php
declare(strict_types=1);
function sum(int $a, int $b): int
{
return $a + $b;
}
در پروژههای بزرگ و حرفهای، استفاده صحیح از Type System میتواند کد را قابل پیشبینیتر و نگهداری آن را سادهتر کند.
# تفاوت Type Casting و Type Juggling
این دو مفهوم را نباید با یکدیگر اشتباه گرفت.
Type Casting
تبدیل نوع داده را بهصورت صریح انجام میدهیم:
$value = "100";
$number = (int) $value;
Type Juggling
PHP در یک عملیات یا Context خاص تبدیل نوع را بهصورت ضمنی انجام میدهد.
مثلاً:
$value = "100";
$result = $value + 10;
بنابراین:
Type Casting → تبدیل صریح
Type Juggling → تبدیل ضمنی
# مثال کاربردی از انواع داده در PHP
فرض کنید میخواهیم اطلاعات یک محصول را نگهداری کنیم:
$productName = "Laptop";
$price = 50000000;
$discount = 10.5;
$isAvailable = true;
$product = [
"name" => $productName,
"price" => $price,
"discount" => $discount,
"available" => $isAvailable
];
در این مثال چند Data Type مختلف در کنار یکدیگر استفاده شدهاند.
این ساختار در پروژههای واقعی مانند فروشگاه اینترنتی بسیار رایج است.
# دریافت نوع داده از کاربر
یکی از نکات مهم در برنامههای Web این است که نباید نوع داده ورودی کاربر را همیشه همان چیزی فرض کنیم که انتظار داریم.
مثلاً:
$age = $_POST['age'] ?? null;
این مقدار باید قبل از استفاده در Logic برنامه اعتبارسنجی شود.
مثلاً:
if (filter_var($age, FILTER_VALIDATE_INT) !== false) {
echo "Valid age";
}
این موضوع در طراحی فرمها و APIها اهمیت زیادی دارد.
# چرا شناخت Data Type ها در PHP مهم است؟
شناخت انواع داده فقط برای یادگیری Syntax نیست.
در پروژههای واقعی، Type داده روی موارد مختلف تأثیر میگذارد:
- انجام محاسبات
- مقایسه مقادیر
- اعتبارسنجی داده
- دریافت اطلاعات فرم
- پردازش API
- کار با Database
- طراحی Functionها
- برنامهنویسی شیءگرا
- جلوگیری از خطاهای منطقی
- افزایش خوانایی کد
هرچه پروژه بزرگتر شود، مدیریت صحیح Typeها اهمیت بیشتری پیدا میکند.
# اشتباهات رایج درباره انواع داده در PHP
اشتباه اول: فرض کردن اینکه همه ورودیها نوع مورد انتظار را دارند
مثلاً:
$age = $_POST['age'];
نباید بدون اعتبارسنجی فرض کنیم $age حتماً Integer است.
اشتباه دوم: استفاده بیدقت از ==
در بعضی شرایط مقایسه Loose میتواند نتایج غیرمنتظره ایجاد کند.
در مواردی که Type اهمیت دارد، استفاده از:
===
انتخاب مناسبتری است.
اشتباه سوم: نادیده گرفتن NULL
ممکن است دادهای از Database یا API مقدار NULL داشته باشد.
بنابراین باید در طراحی کد، امکان NULL را در نظر گرفت.
اشتباه چهارم: انجام محاسبات مالی بدون توجه به Float
برای مبالغ مالی حساس نباید صرفاً به محاسبات Float تکیه کرد.
بسته به نیاز پروژه، میتوان از روشهای مناسب برای نمایش و محاسبه دقیق مبالغ استفاده کرد.
# جدول خلاصه انواع داده در PHP
| نوع داده | کاربرد | مثال |
|---|---|---|
| String | متن | "Ali" |
| Integer | عدد صحیح | 25 |
| Float | عدد اعشاری | 10.5 |
| Boolean | True/False | true |
| Array | چند مقدار | ["Ali", "Sara"] |
| Object | نمونهای از Class | new User() |
| NULL | بدون مقدار | null |
| Resource | اشاره به یک Resource | بسته به Extension |
# جمعبندی
انواع داده یا Data Types در PHP مشخص میکنند Variableهای ما چه نوع مقداری را نگهداری میکنند.
مهمترین انواع دادهای که باید هنگام یادگیری PHP بشناسید عبارتاند از:
- String برای متن
- Integer برای اعداد صحیح
- Float برای اعداد اعشاری
- Boolean برای مقادیر منطقی
- Array برای نگهداری مجموعهای از دادهها
- Object برای دادههای شیءگرا
- NULL برای نشان دادن نبود مقدار
- Resource برای برخی منابع خارجی
همچنین PHP امکاناتی مانند Type Casting، Type Juggling، Type Declaration، Nullable Type و Union Type را در اختیار برنامهنویس قرار میدهد.
برای بررسی نوع داده نیز میتوان از ابزارهایی مانند:
var_dump()
و:
gettype()
استفاده کرد.
اگر در حال یادگیری PHP از صفر هستید، بعد از یادگیری Variableها و Data Typeها، مرحله بعدی یادگیری شرطها در PHP است؛ زیرا در ادامه باید بتوانید بر اساس مقدار دادهها تصمیمگیری کنید.
# سوالات متداول درباره انواع داده در PHP
انواع داده اصلی در PHP چیست؟
مهمترین Data Typeهای PHP شامل String، Integer، Float، Boolean، Array، Object، NULL و Resource هستند.
String در PHP چیست؟
String برای ذخیره و پردازش دادههای متنی استفاده میشود و میتوان آن را با Single Quote یا Double Quote تعریف کرد.
Integer در PHP چیست؟
Integer نوع دادهای برای اعداد صحیح مانند 10، 0 و -5 است.
Float در PHP چیست؟
Float برای نگهداری اعداد اعشاری مانند 10.5 و 99.99 استفاده میشود.
Boolean در PHP چیست؟
Boolean فقط دو مقدار true و false دارد و معمولاً در شرطها استفاده میشود.
Array در PHP چیست؟
Array ساختاری برای نگهداری چند مقدار در یک Variable است و میتواند به شکل Indexed، Associative یا چندبعدی استفاده شود.
چگونه نوع Variable را در PHP بفهمیم؟
میتوانید از var_dump() یا gettype() استفاده کنید:
$value = 100;
var_dump($value);
echo gettype($value);
Type Casting در PHP چیست؟
Type Casting یعنی تبدیل صریح یک داده از یک نوع به نوع دیگر، مثلاً:
$value = "100";
$number = (int) $value;
Type Juggling در PHP چیست؟
Type Juggling به تبدیل ضمنی نوع داده توسط PHP در شرایط خاص گفته میشود.
تفاوت == و === در PHP چیست؟
== مقایسه Loose انجام میدهد، در حالی که === علاوه بر مقدار، نوع داده را نیز بررسی میکند.
آیا PHP یک زبان Dynamically Typed است؟
بله. PHP از Dynamic Typing پشتیبانی میکند و معمولاً هنگام تعریف Variable لازم نیست نوع آن را مشخص کنید.
# مقالات مرتبط
برای ادامه مسیر یادگیری PHP میتوانید مقالات زیر را مطالعه کنید:
- متغیرها در PHP
- شرطها در PHP
- حلقهها در PHP
- توابع در PHP
- آرایهها در PHP
- رشتهها در PHP
- کار با تاریخ و زمان در PHP
- کار با JSON در PHP
- Exception در PHP
- Namespace در PHP
- Composer چیست؟
- OOP در PHP
- PHP و MySQL
- اتصال PHP به MySQL
# مسیر پیشنهادی یادگیری
اگر از صفر شروع کردهاید، مسیر پیشنهادی این بخش به شکل زیر است:
PHP چیست؟
↓
آموزش PHP از صفر
↓
Syntax در PHP
↓
متغیرها در PHP
↓
انواع داده در PHP
↓
شرطها در PHP
↓
حلقهها در PHP
↓
توابع در PHP
↓
آرایهها در PHP
↓
رشتهها در PHP
↓
تاریخ و زمان
↓
JSON
↓
کار با فایل
↓
Exception
↓
Namespace
↓
Composer
↓
OOP





