سینتکس php

سینتکس PHP

در معرفی PHP گفته شد که PHP زبان اسکریپتی سمت سرور است که بصورت استاندارد در داخل کدهای HTML نوشته می شود و آن را به کاربر بازگشت می دهد. سینتکس PHP بسیار ساده است بطوری که حتی برنامه نویسان تازه کار نیز می توانند آن را درک کنند.

تمامی کدهای PHP در داخل <?php و ?> قرار می گیرند.

<?php
//code goes here
?>

کدهای PHP برای اجرا شدن باید در داخل فایل با پسوند .php قرار بگیرد.

همانطور که گفتیم، کدهای PHP در داخل کدهای HTML قرار می گیرند.

<!DOCTYPE html>
<html>
<body>
    <?php echo "Hello World!"; ?>
</body>
</html>

البته می توان کدهای PHP را بدون کدهای HTML نیز اجرا کرد اما بصورت استاندارد در داخل تگهای HTML نوشته می شود.

<?php 
    echo "Hello World!"; 
?>

کدهای PHP نیز مانند C یا C++ به ; ختم می شود.

عبارات از پیش تعیین شده مانند if، for و… حساس به بزرگی و کوچکی (Case Sensitive) نمی باشد.

<?php
echo "Honar Systems </br>";
ECHO "Honar Systems </br>";
eCho "Honar Systems";
?>
----------------
Honar Systems
Honar Systems
Honar Systems 

اما نام متغیرها حساس به بزرگی و کوچکی حروف (Case Sensitive) می باشد.

$var="Honar Systems";
ECHO $Var;
-------------------
Error: Undefined variable: Var

کامنتها در سینتکس PHP

در این زبان هر کجا که لازم باشد می توانید به راحتی کامنت گذاری کنید. کامنتها در PHP اجرا نمی شوند و فقط برای این نوشته می شوند که در آینده در صورت توسعه، بتوان از اطلاعات آنها برای فهمیدن کد استفاده کرد.

PHP از انواع کامنت گذاری پشتیبانی می کند.

// This is a single-line comment
echo "a</br>";

# This is also a single-line comment
echo "b</br>";

/*
This is a multiple-lines comment block
that spans over multiple
lines
*/
echo "c</br>";

// You can also use comments to leave out parts of a code line
$val = 5 /* + 15 */ + 5;
echo $val;
-----------------------
a
b
c
۱۰

همانطور که مشاهده می کنید کامنتها اجرا نشده اند.

متغیرها در PHP

متغیرها برای ذخیره داده ها بصورت موقت به کار می روند. در PHP متغیرها را می توان در هر کجای کدها تعریف کرد.

تعریف متغیر

برای تعریف متغیر در PHP به اول نام متغیر علامت $ اضافه می کنیم.

$val = "Honar Systems";
$val2 = 10;

برخلاف سایر زبان های برنامه نویسی، PHP هیچ فرمانی برای اعلان یک متغیر ندارد. همه متغیرها در لحظه تعریف به نوع داده ای خود تبدیل می شوند.

قوانین تعریف متغیرها:

  • یک متغیر با علامت $ شروع می شود و به دنبال آن نام متغیر قرار می گیرد
  • نام متغیر باید با یک حرف یا کاراکتر آندرلاین ( _ ) شروع شود
  • نام متغیر نمی تواند با یک عدد شروع شود
  • نام متغیر فقط می‌تواند شامل عدد و زیرخط باشد (A-z، ۰-۹ و _ )
  • نام متغیرها به حروف بزرگ و کوچک حساس هستند ($age و $AGE دو متغیر متفاوت هستند)

سینتکس PHP طوری است که می توانیم بدون تعریف نوع متغیر آن را تعریف کنیم و حتی می توانیم نوع آن را تغییر دهیم بدون اینکه خطایی رخ دهد.

$val = "Honar Systems";
echo $val . "</br>";
$val = 5 + 5;
echo $val;
-------------
Honar Systems
۱۰

در PHP 7 تعریف نوع داده اضافه شده است به طوری که با فعال کردن strict mode اگر نوع داده ای ها با هم فرق کنند، خطا رخ خواهد داد.

اگر متغیری تعریف شود اما مقدار آن مشخض نشود، بطور اتوماتیک مقدار آن NULL می شود.

محدوده متغیرها در PHP

محدوده متغیر محدوده ای است که هر متغیر در آن اعتبار دارد و خارج از آن نباید استفاده شود و اگر نه باعث ایجاد خطا می شود. در PHP سه نوع محدوده متغیر داریم:

  • local
  • global
  • static

local scope و global

متغیرهای محلی یا (local) نسبت به مکان تعریف، در آن محدوده اعتبار دارند. بطوری کلی می توان گفت که اگر متغیری ما بین { } تعریف شود، در داخل همان براکت ها اعتبار دارد و نمی توان بیرون از آن ها از متغیر استفاده کرد.

متغری هم که در اول فایل PHP تعریف می شود فقط در همان فایل و فایلهای الحاق شده بعد از آن معتبر است.

$g_var = "A";

function print_var(){
    $l_var = "B";
    echo $l_var;
}

if(true){
    $l_var2 = "C";
    echo $g_var . $l_var2;
}

echo $g_var . print_var();
----------------
ACBA

متغیر $g_var بعنوان متغیر global شناخته می شود. یعنی در هر جایی از فایل می توان از آن استفاده کرد اما در داخل توابع برای استفاده از آنها باید بصورت پارامتر به تابع ارسال شود.

متغیر $l_var فقط در داخل تابع قابل دسترس می باشد (متغیر local). همچنین متغیر $l_var2 در داخل if قابل دسترسی می باشد. اما از متغیرهای global می توان در داخل if، for و… استفاده کرد.

در این مثال ما متغیرهای $l_var و $l_var2 را برای مشخص شدن با نام های متفاوت انتخاب کردیم اما می توانید آن ها را همنام انتخاب کنید و تداخلی رخ نخواهد داد زیرا این متغیرها لوکال هستن.

کلمه global در سینتکس PHP

در مثال قبل ما نمی توانیم از متغیر $g_var در داخل تابع استفاده نماییم. اما با استفاده از کلمه global این امر امکان پذیر است.

$g_var = "A";

function print_var()
{
    global $g_var;
    $g_var = "B";
    echo $g_var;
}

echo print_var();
---------------
B

در داخل تابع کلمه global را به همراه نام متغیر در خارج از تابع را تعریف می کنیم. دقت نمایید که نام متغیر داخل تابع دقیقا با نام متغیر خارج از تابع یکسان می باشد. همچنین در تعریف global مقدار دهی نمی توان انجام داد، مقدار دهی در سطر بعد امکان پذیر می باشد. برای مثال کد زیر غلط است.

global $g_var = "B";
-----------
Error

PHP همچنین تمام متغیرهای سراسری را در آرایه ای به نام $GLOBALS[index] ذخیره می کند. index

نام متغیر را نگه می دارد. این آرایه از داخل توابع نیز قابل دسترسی است و می توان از آن برای به روز رسانی مستقیم متغیرهای سراسری استفاده کرد.

$g_var1 = "A";
$g_var2 = "B";

function print_var()
{
    echo $GLOBALS['g_var1'] . $GLOBALS['g_var2'];
}

print_var();
----------------
AB

static

در توابع بعد اتمام اجرای کد، مقدار متغیر ها پاک می شوند. گاهی ما نیاز داریم که این مقادیر حفظ شوند. برای این کار از متغیرهای static استفاده می کنیم.

function my_func()
{
    static $x = 1;
    print $x . "</br>";
    $x++;
}

my_func();
my_func();
my_func();
-----------------
۱
۲
۳

متغیر $x یک متغیر local برای تابع است و نمی توان از آن در خارج از تابع استفاده کرد.

مطالب مرتبط