مقدمه (PHP Intro)
مقدمهای بر PHP: جادویِ تولیدِ صفحاتِ پویا ✨🐘
در حالی که HTML و CSS ظاهرِ وبسایت را میسازند، PHP به آن "هوش" میدهد. PHP کدهایِ شما را رویِ سرور اجرا میکند و نتیجه را به صورتِ HTML خالص به مرورگرِ کاربر میفرستد.
فایلهای PHP شامل چه چیزهایی هستند؟
یک فایل با پسوند .php میتواند شامل متن، HTML، CSS، جاوااسکریپت و البته کدهایِ PHP باشد. کدهایِ PHP بین دو تگ <?php و ?> محصور میشوند.
ویژگیهای کلیدی PHP:
- Cross-Platform: روی ویندوز، لینوکس و مک به خوبی اجرا میشود.
- سازگاری: با تقریباً تمام سرورهای وب مثل Apache و Nginx سازگار است.
- پایگاهداده: پشتیبانیِ فوقالعاده از MySQL، PostgreSQL، Oracle و غیره.
- رایگان و متنباز: همیشه در دسترس است.
مقایسهی عملکرد:
در PHP 8، قابلیتهایی مثل Union Types و Attributes اضافه شده که کدنوسی را بسیار به استانداردهایِ جاوا و سیشارپ نزدیک کرده است.
بخش تخصصی: کالبدشکافی زبان 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 باید در یک تگ مخصوص قرار گیرند. تمام متن "PHP is Dynamic" را درون تگ PHP چاپ کنید.
<?php
echo "PHP is Dynamic";
?>
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.