سطح B: دنیای متنوع دادهها
حالا که با جعبههای اصلی آشنا شدیم، وقت آن است که انواع دیگری از دادهها را کشف کنیم و ابزارهای بهتری برای دیدن محتویات جعبههایمان یاد بگیریم.
محتوای آموزشی
۱. انواع داده جدید
Float (یا Double): برای ذخیره اعداد اعشاری استفاده میشود (مانند $price = 19.99;).
Boolean (بولین): فقط دو مقدار میتواند داشته باشد: true (درست) یا false (غلط).
NULL: یک نوع داده ویژه که به معنی "هیچ مقداری" است.
۲. ابزار حرفهای برای دیباگ: var_dump()
دستور echo فقط مقدار یک متغیر را چاپ میکند. اما تابع var_dump() یک گزارش کامل از متغیر به ما میدهد: نوع داده، مقدار و طول آن. این تابع بهترین دوست شما در هنگام پیدا کردن خطاها (دیباگ کردن) خواهد بود.
۳. توابع تشخیص نوع
گاهی در برنامه لازم است چک کنیم که نوع یک متغیر چیست:
gettype($variable): نوع متغیر را به صورت رشته برمیگرداند.is_int($variable): چک میکند آیا متغیر عدد صحیح است یا نه (true/false).is_string($variable),is_bool($variable),is_null($variable)و ...
۴. الحاق رشته (Interpolation) با دابل کوتیشن
وقتی یک متغیر را مستقیماً داخل یک رشته با دابل کوتیشن (" ") قرار میدهید، PHP مقدار آن متغیر را جایگزین نامش میکند. به این کار Interpolation میگویند و کد را خواناتر میکند.
۵. تبدیل نوع خودکار (Type Juggling)
PHP سعی میکند در عملیات مختلف، انواع داده را به طور خودکار به نوع مناسب تبدیل کند. برای مثال، "5" + 10 نتیجهاش 15 میشود. این ویژگی گاهی مفید است، اما میتواند خطرناک هم باشد.
کارگاه عملی: بازرسی متغیرها
<?php
$product_name = "Laptop"; // String
$price = 999.95; // Float
$is_available = true; // Boolean
$customer_review = NULL; // NULL
// استفاده از var_dump برای دیدن جزئیات متغیرها
var_dump($product_name);
echo '<br>';
var_dump($price);
echo '<br>';
var_dump($is_available);
echo '<br>';
var_dump($customer_review);
echo '<br><hr>';
// مقایسه الحاق با نقطه و Interpolation با کوتیشن
$quantity = 5;
// روش قدیمی (سطح a)
echo 'We have ' . $quantity . ' ' . $product_name . 's in stock.';
echo '<br>';
// روش جدید با Interpolation
echo "We have $quantity {$product_name}s in stock."; // بهتر است متغیر داخل {} باشد
echo '<br><hr>';
// مثال تبدیل نوع خودکار
$string_number = "100";
$regular_number = 50;
$result = $string_number + $regular_number;
echo "The result of \"100\" + 50 is: ";
var_dump($result); // int(150)
?>
تمرین شما
صورت تمرین:
۱. یک متغیر به نام $item_name (مثلاً "کتاب")، یک متغیر $item_price (مثلاً 25.5) و یک متغیر $is_on_sale (مثلاً false) تعریف کنید.
۲. با استفاده از var_dump() اطلاعات هر سه متغیر را در خروجی نمایش دهید.
۳. با استفاده از Interpolation جملهای مانند "The price for the item [Item Name] is $[Item Price]." چاپ کنید.
۴. با استفاده از تابع is_bool() چک کنید که آیا متغیر $is_on_sale از نوع بولین است یا خیر و یک پیام مناسب چاپ کنید.
باشگاه ذهن: یک چالش برای هوش مصنوعی
چالش شما: شما در مثالها دیدید که PHP به طور خودکار رشته عددی را به عدد تبدیل میکند. این رفتار میتواند گاهی گیجکننده باشد.
این پرامپت را به ابزار هوش مصنوعی خود بدهید:
مفهوم "Type Juggling" در PHP را به زبان ساده توضیح بده. اگر بخواهیم یک عدد را با یک رشته غیر عددی جمع کنیم (مثلاً `10 + "hello"`) چه اتفاقی میافتد و چرا؟ لطفاً یک سناریوی واقعی مثال بزن که در آن Type Juggling میتواند باعث ایجاد یک باگ یا مشکل امنیتی در یک وبسایت شود.