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

مقدمه (PHP Intro)

30 دقیقه Article

مقدمه‌ای بر PHP: جادویِ تولیدِ صفحاتِ پویا ✨🐘

در حالی که HTML و CSS ظاهرِ وب‌سایت را می‌سازند، PHP به آن "هوش" می‌دهد. PHP کدهایِ شما را رویِ سرور اجرا می‌کند و نتیجه را به صورتِ HTML خالص به مرورگرِ کاربر می‌فرستد.

فایل‌های PHP شامل چه چیزهایی هستند؟

یک فایل با پسوند .php می‌تواند شامل متن، HTML، CSS، جاوااسکریپت و البته کدهایِ PHP باشد. کدهایِ PHP بین دو تگ <?php و ?> محصور می‌شوند.

ویژگی‌های کلیدی PHP:

  • Cross-Platform: روی ویندوز، لینوکس و مک به خوبی اجرا می‌شود.
  • سازگاری: با تقریباً تمام سرورهای وب مثل Apache و Nginx سازگار است.
  • پایگاه‌داده: پشتیبانیِ فوق‌العاده از MySQL، PostgreSQL، Oracle و غیره.
  • رایگان و متن‌باز: همیشه در دسترس است.
تفاوتِ Client-side و Server-side: برخلافِ جاوااسکریپت که در مرورگرِ کاربر اجرا می‌شود، کدهایِ PHP هرگز توسط کاربر دیده نمی‌شوند. کاربر فقط خروجی نهایی را می‌بیند که امنیتِ کدهایِ شما را تامین می‌کند.

مقایسه‌ی عملکرد:

در PHP 8، قابلیت‌هایی مثل Union Types و Attributes اضافه شده که کدنوسی را بسیار به استانداردهایِ جاوا و سی‌شارپ نزدیک کرده است.

یک اشتباه رایج: برای اجرای کدهای PHP، فقط باز کردن فایل در مرورگر کافی نیست! شما نیاز به یک وب‌سرور (مثل Apache) دارید.
<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 ذخیره شوند و در درخواست‌های بعدی نیاز به کامپایلِ مجدد نباشد.

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

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

شناسایی تگ PHP Easy
سوال تمرین

کدهای PHP باید در یک تگ مخصوص قرار گیرند. تمام متن "PHP is Dynamic" را درون تگ PHP چاپ کنید.

پاسخ تمرین
PHP
<?php
echo "PHP is Dynamic";
?>

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

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