دستور زبان PHP بسیار شبیه به زبان C است. PHP یک زبان اسکریپتنویسی سمت سرور است. کد PHP بهصورت یک فایل متنی با پسوند “.php” ذخیره میشود. یک فایل ‘.php’ در اصل یک صفحه وب است که شامل یک یا چند بلوک از کد PHP است که درون اسکریپت HTML قرار گرفتهاند.
با این حال، این فایل باید در مرورگر با استفاده از یک URL با پروتکل HTTP باز شود. بهعبارت دیگر، اگر روی آیکون فایل PHP دوبار کلیک کنید، این فایل بهصورت محلی با پروتکل فایل (file protocol) باز میشود. برای مثال، اگر فایل “index.php” را در پوشهی ریشهی سند (Document Root) سرور Apache باز کنید، ممکن است فقط متن کد PHP نمایش داده شود. اما اگر سرور Apache را اجرا کرده و آدرس http://localhost/index.php را در مرورگر باز کنید، صفحهی خانگی Apache نمایش داده میشود.
تگهای PHP
PHP دو روش برای نوشتن تگها جهت جداسازی کد PHP از HTML تعریف میکند. این روشها عبارتند از:
- تگهای معمولی (Canonical PHP tags)
- تگهای کوتاه باز (Short-open یا سبک SGML)
تگهای معمولی PHP
تگهای معمولی PHP معمولاً برای درج کد PHP در یک فایل HTML استفاده میشوند. این تگها با ” به پایان میرسند. این روش بهترین و رایجترین روش نوشتن کد PHP است، زیرا روی تمام سرورها کار میکند و نیازی به پیکربندی اضافی ندارد. رایجترین و موثرترین سبک تگ PHP بهصورت زیر است:
<?php echo "Hello World!"; ?>
اگر از این روش استفاده کنید، میتوانید مطمئن باشید که تگهای شما همیشه بهدرستی تفسیر خواهند شد.
تگهای کوتاه باز (Short-open یا سبک SGML)
تگهای کوتاه باز، روشی کوتاهتر برای نوشتن کد PHP هستند. این تگها با <?
شروع شده و با ?>
پایان مییابند. این تگها ممکن است روی همهی سرورها کار نکنند، مگر اینکه گزینهی short_open_tag
در فایل پیکربندی PHP فعال شده باشد. تگهای کوتاه یا short-open بهصورت زیر هستند:
توجه: استفاده از تگهای کوتاه ممکن است در برخی از سرورها بهدلیل تنظیمات پیشفرض غیر فعال باشد، بنابراین روش توصیهشده استفاده از تگهای معمولی
<?php ... ?>
است.
<?php echo "Hello Everyone!"; ?>
تگهای کوتاه
همانطور که از نامشان پیداست، کوتاهترین گزینه برای نوشتن کد PHP هستند. برای اینکه PHP این تگها را تشخیص دهد، باید یکی از دو کار زیر را انجام دهید:
-
هنگام کامپایل کردن PHP، گزینهی پیکربندی
--enable-short-tags
را انتخاب کنید. -
مقدار تنظیم
short_open_tag
را در فایل پیکربندی PHP (php.ini) روی on قرار دهید.
short_open_tag=on
این گزینه باید غیرفعال شود تا بتوان XML را با PHP تجزیه کرد، زیرا همان نحو (syntax) برای تگهای XML نیز استفاده میشود.
استفاده از تگهای به سبک ASP
<%...%>
و تگهای اسکریپت HTML
<script language = "PHP">...</script>
متوقف شده است.
خروج از HTML تجزیهکننده
PHP همه چیز را خارج از جفت تگهای باز و بسته نادیده میگیرد. بنابراین، یک فایل PHP میتواند محتوای ترکیبی داشته باشد. این امکان را میدهد که PHP در اسناد HTML قرار گیرد
<p>This is a HTML statement</p> <?php echo This is a PHP statement.'; ?> <p>This is another HTML statement.</p>
مثال کمی پیشرفتهتر از خروج از حالت HTML با استفاده از شرطها در زیر نشان داده شده است −
<?php if ($expression == true): ?> This HTML statement will be rendered. <?php else: ?> Otherwise this HTML statement will be rendered. <?php endif; ?>
PHP بلوکهایی را که شرط آنها برقرار نیست، حتی اگر خارج از تگهای باز و بسته PHP باشند، رد میکند.
برای خروجی گرفتن از بلوکهای بزرگ متنی، خارج شدن از حالت پارس کردن PHP معمولاً بهصرفهتر است تا اینکه تمام متن را از طریق echo یا print ارسال کنیم.
ساختار پایه PHP
ساختار پایه PHP بسیار شبیه به زبانهای C و C++ است.
دستورات در PHP
یک دستور در PHP هر عبارت (expression) است که با علامت نقطهویرگول (;) خاتمه مییابد. هر دنبالهای از دستورات معتبر PHP که داخل تگهای PHP قرار گرفته باشد، یک برنامه معتبر PHP است.
در اینجا یک دستور معمولی در PHP آمده است که در این مثال، رشتهای از کاراکترها را به متغیری به نام “$greeting” اختصاص میدهد −
$greeting = "Welcome to PHP!";
یک خط فیزیکی در ویرایشگر متن در کد PHP هیچ اهمیت خاصی ندارد. ممکن است چندین دستور که با نقطهویرگول پایان یافتهاند، در یک خط قرار داشته باشند. از طرف دیگر، یک دستور PHP میتواند در بیش از یک خط ادامه داشته باشد اگر لازم باشد.
عبارتها (Expressions) در PHP
یک عبارت ترکیبی از مقادیر، متغیرها و عملگرها است که یک نتیجه تولید میکند. توکنها ابتداییترین بلوکهای ساختاری PHP هستند. بهعنوان مثال:
- اعداد (۳.۱۴۱۵۹)
- رشتهها (“Hello”)
- متغیرها ($name)
- ثابتها (TRUE, FALSE)
- کلیدواژهها (if, else, while, for و غیره)
- آکولادها ({}) برای بلوکها
آکولادها ({}) برای بلوکها
اگرچه دستورات نمیتوانند مانند عبارتها با یکدیگر ترکیب شوند، اما همیشه میتوانید یک دنبالهای از دستورات را در هر جایی که یک دستور قابل استفاده است، با قرار دادن آنها در یک مجموعه آکولاد قرار دهید.
در اینجا، هر دو دستور زیر معادل هستند:
if (3 == 2 + 1) print("Good - I haven't totally lost my mind."); if (3 == 2 + 1) { print("Good - I haven't totally"); print("lost my mind.<br>"); }
حساسیت به حروف بزرگ و کوچک در PHP
PHP یک زبان حساس به حروف بزرگ و کوچک است. نامهای مختلف شناسههای PHP مانند متغیر، تابع، کلاس و غیره به حروف بزرگ و کوچک حساس هستند. در نتیجه، متغیر “$age” با “$Age” یکی نیست.
متغیرها در PHP به حروف بزرگ و کوچک حساس هستند
$age = 25; // Error: Undefined variable $Age echo $Age;
اینجا، $age و $Age متغیرهای متفاوتی هستند.
PHP و دیگر فناوریهای وب
یک فایل “.php” ممکن است شامل بلوکهای کد HTML، CSS و JavaScript همراه با کد PHP باشد. بنابراین، تجزیهکننده PHP باید کد PHP را از سایر عناصر تشخیص دهد. وقتی یک فایل “.php” در مرورگر وب باز میشود، موتور HTML بخش HTML/CSS/JavaScript را نمایش میدهد و به محض مواجه شدن با دستورات داخل تگهای PHP، از بلوک HTML خارج میشود. مفسر PHP این بلوک را پردازش کرده و پاسخ را به مرورگر بازمیگرداند.