فهرست محتوا
تگ PHP چبیه و چطور کار میکنه؟ وقتی PHP یک فایل را تفسیر می کنه (Parse میکنه)، به دنبال تگ های باز و بسته میگرده. دقیقا مثل html
تگ باز و بسته در PHP به شکل زیر هست:
<?php // تگ باز
?> // تگ بسته
هر چیزی بین ان دوتا تگ هست به عنوان کد PHP تفسیر میشه و هرچی خارج اون باشه مثل کدهای HTML یا متن عادی تفسیر میشه.
همین موضوع باعث میشه بتونیم لابلای کدهای HTML کدهای PHP رو جا بدیم. پس هرچی بین تگ های باز و بسته است به صورت کد PHP تفسیر میشه و هرچه خارج اون باشه توسط مفسر زبان PHP نادیده گرفته میشه.
حالت های خلاصه یا کوتاه تگ PHP
البته یک حالت کوتاه برای تگ باز داریم، اما روش معمول که بالاتر نوشتم بیشتر استفاده میشه و بهتره از همون استفاده کنید:
<?=
?>
یک حالت خلاصه تر هم داریم:
<?
?>
چندتا مثال ببینیم:
1. <?php echo 'if you want to serve PHP code in XHTML or XML documents,
use these tags'; ?>
2. You can use the short echo tag to <?= 'print this string' ?>.
It's equivalent to <?php echo 'print this string' ?>.
3. <? echo 'this code is within short tags, but will only work '.
'if short_open_tag is enabled'; ?>
خروجی کدها
1. if you want to serve PHP code in XHTML or XML documents,
use these tags
2. You can use the short echo tag to print this string.
It's equivalent to print this string.
3. this code is within short tags, but will only work if short_open_tag is enabled
در مثال سوم از نوع کوتاه تگ باز (خلاصه ترین حالت) استفاده کردیم. به صورت پیش فرض توسط همه سرورها فعاله، اما میتونی با تنظیمات فایل php.ini
اون رو فعال یا غیرفعال کنی.
کافیه خطی که تو اون عبارت short_open_tag نوشته رو پیدا کنی و برای غیرفعال کردنش مقدارش رو روی false قرار بدی.
نکته مهم این که حالت خلاصه نوع اول (<?=) با این روش غیرفعال نمیشه و همیشه فعاله.
از آنجایی که برچسب های کوتاه را می توان غیرفعال کرد، توصیه می شود فقط از برچسب های معمولی ( و ) برای به حداکثر رساندن سازگاری استفاده کنید.
اگر فایلی فقط حاوی کد PHP باشه، با بعد از کدهای PHP دیگه کد HTML مداشته باشیم، میتونید تگ بسته رو نگذارید.
این کار از اضافه شدن تصادفی فضای خالی یا خط های جدید بعد از تگ بسته شدن PHP جلوگیری می کنه، که ممکنه اثرات ناخواسته ای ایجاد کنه، چون PHP زمانی که برنامه نویس قصدی برای ارسال خروجی در آن نقطه از اسکریپت نداشته باشه، بافر خروجی را شروع میکنه.
مثال:
<?php
echo "Hello world";
// ... more code
echo "Last statement";
// the script ends here with no PHP closing tag
آخرین مطالب کتابچه راهنمای PHP
منبع: php.net