نحو نگارش (PHP Syntax)
قوانینِ بازی: نحو نگارش (Syntax) در PHP 📜🔍
مانند هر زبانِ دیگری، PHP هم گرامرِ خاصِ خودش را دارد. رعایتِ این قوانین برای جلوگیری از خطاهایِ Parse Error حیاتی است.
۱. حساسیت به حروف (Case Sensitivity)
در PHP، دستوراتِ پیشفرض (مثل ECHO, if, while) حساس به حروف نیستند. اما نامِ متغیرها به شدت حساس هستند!
۲. نقطه-ویرگول (Semicolon) ؛
فراموش کردنِ ; در انتهایِ هر دستور، رایجترین دلیلِ توقفِ کدهایِ PHP است. هر خطِ دستوری باید پایانِ خود را اعلام کند.
۳. تگِ پایانی ?>
اگر فایل شما فقط شامل کدهایِ PHP است، بهترین راهکارِ استاندارد (PSR-12) این است که تگِ پایانی را نگذارید. این کار از ایجاد فاصلههایِ ناخواستهیِ خروجی جلوگیری میکند.
یک کدِ استاندارد:
{code_block('$name = "Saman";\necho "Hello " . $name;')}بخش تخصصی: کالبدشکافی زبان 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
$txt = "PHP Syntax";
echo $txt;
?>
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.