انتقل إلى محتوى الدرس

Flexible Indented Closing Identifiers إزاحة وسم الإغلاق المرنة في PHP 8

اكتب النصوص متعددة الأسطر بصيغتي Heredoc وNowdoc المرنتين في PHP 8، وأتقن الفرق بين إسناد المتغيرات بالقيمة وبالإشارة المرجعية.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

في إصدارات PHP الحديثة (بما فيها PHP 8.4)، يمكن إزاحة وسم الإغلاق في Heredoc وNowdoc بالمسافات، ويقوم PHP تلقائياً بحذف نفس مقدار المسافات البادئة من كل سطر داخل الكتلة.

  • تحدد إزاحة وسم الإغلاق الهامش الأساسي الذي يتم اقتطاعه من بداية كل سطر داخل النص.
  • لا يجوز أن تكون إزاحة أي سطر داخل النص أقل من إزاحة وسم الإغلاق، وإلا أطلق مفسر PHP خطأً نحوياً ParseError.
  • لا تخلط أبداً بين المسافات (Spaces) وعلامات الجدولة (Tabs) في إزاحة نفس كتلة Heredoc أو Nowdoc.

لأن وسم الإغلاق YAML; مزاح بمقدار 4 مسافات، يحذف PHP أول 4 مسافات من كل سطر؛ فيبدأ السطر app: من بداية السطر ويحتفظ mode: بمسافتين نسبيتين.

PHP
<?php
$env = "production";

$configBlock = <<<YAML
    app:
      mode: "$env"
      debug: false
    YAML;

echo $configBlock . "\n";