دوره‌ها / آموزش جامع PHP (از صفر تا استادی) / انواع داده (PHP Data Types)

انواع داده (PHP Data Types)

30 دقیقه Article

انواع داده: تنوعِ اطلاعات در PHP 🧱🎨

با اینکه PHP زبانی است که نوعِ متغیر را خودش تشخیص می‌دهد (Dynamic)، اما شناختِ انواعِ داده برایِ دستکاریِ صحیحِ آن‌ها الزامی است.

انواعِ اصلی:

  • String: متن‌ها مثل "Hello".
  • Integer: اعدادِ صحیح (مثبت یا منفی) بدون ممیز.
  • Float: اعدادِ اعشاری (Double).
  • Boolean: فقط true یا false.
  • Array: مجموعه‌ای از داده‌ها در یک متغیر.
  • Object: نمونه‌ای از یک کلاس (OOP).
  • NULL: متغیری که هیچ مقداری ندارد.
  • Resource: نگهدارنده‌یِ لینک به منابعِ خارجی (مثل اتصالِ دیتابیس).

تشخیصِ نوعِ داده (var_dump) 🔍

بهترین دوستِ شما برایِ دی‌باگ کردن. این تابع نه تنها مقدار، بلکه نوع و طولِ داده را هم برمی‌گرداند.

{code_block('$x = 10.5;\nvar_dump($x); // float(10.5)')}
Boolean در PHP: مقدارِ عدد صفر (0)، رشته‌یِ خالی ("") و NULL به معنایِ false در نظر گرفته می‌شوند. بقیه‌یِ مقادیر true هستند.

تعریفِ آرایه (روشِ جدید):

{code_block('$cars = ["Benz", "BMW", "Toyota"];')}
Type Hinting: در PHP مدرن، می‌توانید در ورودیِ توابع، نوعِ داده را اجباری کنید تا از ورودِ داده‌هایِ نامعتبر جلوگیری شود.
<hr style="margin: 50px 0; border: 0; border-top: 1px dashed rgba(255,255,255,0.1);">

بخش تخصصی: کالبدشکافی زبان PHP و موتور Zend 🐘⚙️

درکِ عمیقِ PHP نیازمند آشنایی با آن چیزی است که در پشتِ صحنه اتفاق می‌افتد. PHP یک زبانِ تفسیری (Interpreted) است که توسط موتور قدرتمند Zend Engine اجرا می‌شود.

۱. چرخه عمر درخواست (Request Lifecycle)

در هر بار لود شدنِ صفحه، PHP مراحلِ زیر را طی می‌کند:

  • Lexing/Scanning: تبدیلِ کدها به توکن‌هایِ معنادار.
  • Parsing: ساختِ یک ساختارِ درختی از کدها (AST).
  • Compilation: تبدیلِ درختِ کد به OpCodes (دستورالعمل‌هایِ سطحِ پایین).
  • Execution: اجرایِ OpCodeها توسط مفسرِ Zend.

۲. مدیریت حافظه (Zend Memory Manager)

PHP برخلافِ زبان‌هایی مثل C، مدیریتِ حافظه را به صورتِ خودکار انجام می‌دهد. با استفاده از تکنیکِ Reference Counting و یک Garbage Collector هوشمند، اشیاء و متغیرهایی که دیگر استفاده نمی‌شوند را از حافظه پاک می‌کند تا سرور دچارِ کراش نشود.

۳. سیستمِ تایپِ پویا (Dynamic Typing)

در PHP، متغیرها نوعِ ثابتی ندارند. این انعطاف‌پذیری به لطفِ ساختارِ داده‌ای به نام zval (Zend Value) ممکن شده است که در هر لحظه می‌تواند اطلاعاتی درباره نوع و مقدارِ داده را در خود نگه دارد.

نکته مهندسی: برایِ افزایشِ چشمگیرِ سرعتِ برنامه‌هایِ PHP، همیشه از OPcache استفاده کنید. این قابلیت باعث می‌شود کدهایِ کامپایل شده (OpCodes) در RAM ذخیره شوند و در درخواست‌های بعدی نیاز به کامپایلِ مجدد نباشد.

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

استفاده از var_dump Easy
سوال تمرین

یک متغیر با مقدار منطقی true بسازید و با استفاده از تابعِ var_dump جزییات آن را نمایش دهید.

پاسخ تمرین
PHP
<?php
$isReady = true;
var_dump($isReady);
?>

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.