تماس درباره   صفحه اصلی
  برنامه نويسی مبتنی بر وب > PHP  
 
 

PHP


PHP یک زبان برنامه نویسی اسكریپتی است که برای طراحی برنامه های تحت وب سمت سرور به کار می‌رود.

فایل PHP می تواند شامل متن، HTML، CSS، Javascript و كدهای PHP باشد. كدهای PHP روی سرور اجرا می‌شوند. وقتی كاربر یك صفحه PHP را درخواست می كند ابتدا وب سرور كد PHP را پردازش می كند سپس خروجی به صورت کدهای HTML به مرورگر کامپیوتر کاربر ارسال می‌شود.

ساختار PHP بسیار شبیه زبان های C، Java و Perl است به همین دلیل از محبوبیت فراوانی برخوردار است و درمقایسه با ASP روش رایگان و سریعتری برای یادگیری است.

پیش از آغاز به یادگیری PHP ، شما باید آشنایی کافی با زبان های HTML و جاواسکریپت داشته باشید.

PHP چیست؟
نصب PHP
گرامر PHP
echo و print
تعریف متغیرها در PHP
انواع داده ها در PHP
ثابت
عملگرها
دستورات كنترلی
كاركردن با فرم ها در PHP


PHP چیست؟

PHP در اصل مخفف Personal Home Page بوده است وقتی برای اولین بار توسط Rasmus Lerdorf در سال 1994 برای مشاهده آنلاین رزومه‌اش ایجاد شد. به دلیل ویژگی‌هایی که داشت رشد پیدا کرد و به صورت PHP Hypertext Preprocessor در آمد. PHP زبان اسكریپتی سمت سرور است که با تگ های HTML ترکیب می‌شود تا صفحات وب پویا ساخته شود.

• PHP منبع باز (open source) و رایگان است. به همین دلیل بسیار ارزانتر از تکنولوژی دات نت تمام می‌شود.
• PHP بر روی سیستم های مختلفی (Windows، Linux، Unix، Mac OS X و غیره) اجرا می‌شود و با تقریبا كلیه وب سرور ها مثل Apache و IIS سازگار است.
• PHP یک زبان ساخت یافته بوده و یادگیری آن بسیار ساده است.
• PHP پایگاه داده های زیادی را پشتیبانی می‌كند.

با PHP می توانید صفحات پویا ایجاد كنید، فایل ها را روی سرور ایجاد کنید، آنها را خوانده یا در آنها بنویسید یا حذف کنید، می‌توانید داده‌ها را جمع‌آوری و به سرور ارسال کنید، كوكی‌ها را دریافت کنید، با پایگاه‌های داده‌ روی سرور کارکنید، دسترسی به صفحات وب سایت را محدود كنید یا داده ها را رمزگذاری كنید.


نکته. پسوند فایل های PHP باید "php." باشد.


نصب PHP

برای استفاده و اجرای صفحات PHP شما باید سرور آپاچی (Apache) یا IIS را بر روی کامپیوتر خود نصب کنید. یا اینکه صفحه خود را بر روی یک میزبان وب که از PHP پشتیانی می کند، اجرا نمایید .

می توانید PHP را از سایت www.php.net رایگان دانلود كنید (راهنمای نصب).

اگر سرورتان PHP را ساپورت می كند كافی است فایل های php. كه ساخته اید را در فولدر وب خودتان آپلود كنید تا سرور آنها را اجرا كند.

• سایت رسمی و مرجع آموزش PHP به زبان انگلیسی www.php.neta
• دانلود PHP و ابزارهای جانبی www.php.net/downloads.php
• دانلود MySQL از سایت رسمی www.mysql.com/downloads/
• دانلود سرور Apache از سایت رسمی httpd.apache.org/download.cgi
• دانلود وب ماتریکس برای اجرای PHP روی ویندوز www.microsoft.com/web/webmatrix/
• اجرای دستوراتcodepad.org PHP


گرامر PHP

اسکریپت های PHP را می توانید در هر جای صفحه وب اضافه کنید . اسكریپت ها با علامت <?php شروع و به ?> ختم می‌شود. دستورات PHP بین این دو عبارت قرار می‌گیرند .

<?php
   // PHP code goes here
?>


مثال. یك فایل PHP ساده كه از تابع echo‌ برای نمایش پیغام "!Hello World" روی صفحه وب استفاده می‌كند.

<html>
<body>

<h1>My first PHP page>/h1>

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

</body>
</html>
مشاهده خروجی


نکته. پسوند فایل های PHP باید ".php" باشد.
نکته. دستورات PHP به سمیكولن (;) ‌ختم می‌شوند.
نكته. در PHP كلیه توابع تعریف شده، كلاس ها، كلمات كلیدی حساس به متن نیستند. اما متغیر ها حساس به متن هستند.


مثال. در زیر كلیه دستورات echo مجاز هستند.

<html>
<body>

<?php
   ECHO "Hello World!<br>";
   echo "Hello World!<br>";
   EcHo "Hello World!<br>";
?>

</body>
</html>
مشاهده خروجی

مثال. در زیر تنها دستور اول مقدار متغیر color$ را نشان می‌دهد. با COLOR$ و coLOR$ به عنوان متغیرهای متفاوت برخورد می‌شود.

<html>
<body>

<?php
   $color="red";
   echo "My car is " . $color . "<br>";
   echo "My house is " . $COLOR . "<br>";
   echo "My boat is " . $coLOR . "<br>";
?>
</body>
</html>
مشاهده خروجی


قرار دادن توضیحات

توضیحات قسمت هایی از كد هستند كه خوانده و اجرا نمی‌شوند و تنها برای كسی كه كد را اصلاح می كند مفید است. برای شروع توضیحات از علامت // یا # استفاده کنید. برای توضیحاتی كه بیشتر از یك خط هستند آنها را در بین علایم /* */ قرار دهید.


مثال.

<html>
<body>

<?php
// This is a single line comment

# This is also a single line comment

/*
This is a multiple lines comment block
that spans over more than
one line
*/
?>

</body>
</html>
مشاهده خروجی


echo و print

در PHP دو روش ساده PHP برای ارسال خروجی وجود دارد: echo و print.

تفاوت‌هایی بین دو روش وجود دارد:

• echo - می تواند یك یا چند رشته را نمایش بدهد.
• print – می تواند تنها یك رشته را نمایش بدهد و همیشه مقدار 1 را برمیگرداند.


نکته. echo سریعتر از print است و مقداری هم برنمی‌گرداند. می‌تواند همراه با پرانتز یا بدون آن استفاده شود: echo یا ()echo
نکته. رشته پیغام می‌تواند تگ های HTML را هم شامل بشود.


مثال. نمایش پیغام توسط دستور echo.

<?php
   echo "<h2>PHP is fun!</h2>";
   echo "Hello world!<br>";
   echo "I'm about to learn PHP!<br>";
   echo "This", " string", " was", " made", " with multiple parameters.";
?>
مشاهده خروجی


نکته. دستور print هم می‌تواند با پرانتز یا بدون آن استفاده بشود: print یا ()print


مثال. نمایش پیغام توسط دستور print.

<?php
   print "<h2>PHP is fun!</h2>";
   print "Hello world!<br>";
   print "I'm about to learn PHP!";
?>
مشاهده خروجی


تعریف متغیرها در PHP

در PHP دستوری برای اعلان متغیر وجود ندارد. به محض اینكه مقداری را به متغیری اختصاص بدهید ایجاد می‌شود. برای تعریف یک متغیر در PHP ابتدا علامت $ را قرار داده و سپس نام آن را تعیین کنید.

یك متغیر می‌توان دارای اسامی كوتاه مثل x و y یا اسامی توصیفی ترمانند age، carname، total_volume باشد.

قوانین نامگذاری متغیر در PHP :

• متغیر با علامت دلار ($)شروع می‌شود و بدنبال آن اسم متغیر میاید.
• اسم متغیر با حروف یا علامت زیر خط باید شروع شود و نمی تواند با رقم شروع شود.
• نام متغیر تنها می‌تواند شامل كاراكترهای حرفی-عددی و زیر خط باشد.
• نام متغیرها حساس به متن هستند.

برخلاف زبان های ++C و Java كه متغیرها باید قبل از استفاده ابتدا اعلان شوند، PHP اتوماتیك متغیر را به نوع داده مناسب با توجه به مقدار داده شده به آن تبدیل می‌كند و نیازی به تعریف نوع داده نیست.


مثال.

<?php
   $txt="Hello world!";
   $x=5;
   $y=10.5;
?>
مشاهده خروجی


نکته.از عملگر انتساب (=) برای مقداردهی يک متغیر می توانید استفاده کنید.
نکته. متغیر می تواند درون دابل کوتیشن يا بدون آن نمایش داده شود.


مثال. نمایش پیغام و متغیر توسط دستور echo.

<?php
   $txt1="Learn PHP";
   $txt2="W3Schools.com";
   $cars=array("Volvo","BMW","Toyota");

   echo $txt1;
   echo "<br>";
   echo "Study PHP at $txt2";
   echo "My car is a {$cars[0]}";
?>
مشاهده خروجی


مثال. نمایش پیغام و متغیر توسط دستور print.

<?php
   $txt1="Learn PHP";
   $txt2="W3Schools.com";
   $cars=array("Volvo","BMW","Toyota");

   print $txt1;
   print "<br>";
   print "Study PHP at $txt2";
   print "My car is a {$cars[0]}";
?>
مشاهده خروجی


متغیر می‌تواند هرجایی در اسكریپت تعریف شود. حوزه متغیر بخشی از اسكریپت است كه از متغیر می‌توان استفاده کرد.

سه حوزه مختلف وجود دارد:

• local
• global
• static

متغیری كه خارج از یك تابع تعریف شود سراسری محسوب می‌شود و تنها می‌تواند خارج از تابع دسترسی شود.

متغیری كه داخل تابع اعلان می شود محلی است و تنها درون تابع قابل دسترسی است.


مثال. متغیر $x یك متغیر سراسری و $y یك متغیر محلی است. درون تابع ()mytest مقدار $y چاپ می‌شود اما $x چون خارج از تابع تعریف شده است نمی‌شود. در خارج از تابع مقدار $y را نمی‌توان نمایش داد.

<?php
   $x=5; // global scope

   function myTest()
   {
   $y=10; // local scope
   echo "<p>Test variables inside the function:<p>";
   echo "Variable x is: $x";
   echo "<br>";
   echo "Variable y is: $y";
   }

   myTest();

   echo "<p>Test variables outside the function:<p>";
   echo "Variable x is: $x";
   echo "<br>";
   echo "Variable y is: $y";
?>
مشاهده خروجی


نكته. می‌توانید متغیرهای محلی هم نام در توابع مختلف داشته باشید.


برای دسترسی سراسری به متغیری كه درون تابع تعریف شده است كافی است كلمه کلیدی global را قبل از اسم متغیر ذكر كنید.


مثال.متغیرهای x$ و y$ كه در تابع تعریف شده‌اند به صورت سراسری درآمده‌اند.

<?php
   $x=5;
   $y=10;

   function myTest()
   {
   global $x,$y;
   $y=$x+$y;
   }

   myTest();
   echo $y; // outputs 15
?>
مشاهده خروجی


PHP كلیه متغیرهای سراسری را در جدولی به نام $GLOBALS[index] ذخیره می كند که index نام متغیر است. این جدول درون توابع قابل دسترس است و می‌تواند برای تغییر مستقیم متغیرهای سراسری استفاده شود.


مثال. مثال قبل به صورت زیر می‌تواند نوشته شود.

<?php
   $x=5;
   $y=10;

   function myTest()
   {
   $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
   }

   myTest();
   echo $y; // outputs 15 ?>
مشاهده خروجی


وقتی اجرای تابعی تمام می‌شود به طور نرمال كلیه متغیرهای محلی آن پاك می‌شود. اگر می‌خواهید متغیر محلی از بین نرود كلمه كلیدی static را ابتدای آن قرار دهید.


مثال. هر بار كه تابع myTest فراخوانی می‌شود متغیر x$ آخرین مقدار خود را حفظ می‌كند. اما همچنان محلی است.

<?php

   function myTest()
   {
   static $x=0;
   echo $x;
   $x++;
   }

   myTest();
   myTest();
   myTest();

?>
مشاهده خروجی


انواع داده ها در PHP

انواع داده در PHP شامل : رشته، عدد صحیح، اعداد ممیزشناور، بولین، آرایه، شیء و NULL.

رشته ها

رشته شامل مجموعه‌ای از كاراكترهاست مانند رشته "!Hello world". رشته می تواند هر متنی درون علامت كوتیشن باشد. می‌تواند درون تك یا دابل كوتیشن باشد.


مثال.

<?php
   $x = "Hello world!";
   echo $x;
   echo "<br>";
   $x = 'Hello world!';
   echo $x;
?>
مشاهده خروجی


اعداد صحیح

یك عدد صحیح عددی است كه اعشار ندارد. یك عدد صحیح حداقل باید یك رقم (0-9) داشته باشد و نباید شامل نقطه اعشار، كاما یا فضای خالی باشد. عدد صحیح می‌تواند مثبت یا منفی باشد. عدد صحیح را می‌توان در مبنای ده، شانزده (با پیشوند 0x) یا هشت (با پیشوند 0) نوشت.


مثال. نمایش اعداد مختلف. تابع ()var_dump در PHP نوع داده و مقدار متغیر را برمی‌گرداند.

<?php
   $x = 5985;
   var_dump($x);
   echo "<br>";
   $x = -345; // negative number
   var_dump($x);
   echo "<br>";
   $x = 0x8C; // hexadecimal number
   var_dump($x);
   echo "<br>";
   $x = 047; // octal number
   var_dump($x);
?>
مشاهده خروجی


اعداد ممیز شناور

عدد ممیزشناور عددی است كه دارای نقطه اعشار است یا عددی در فرم نمایی است.


مثال.

<?php
   $x = 10.365;
   var_dump($x);
   echo "<br>";
   $x = 2.4e3;
   var_dump($x);
   echo "<br>";
   $x = 8E-5;
   var_dump($x);
?>
مشاهده خروجی


بولین

نوع بولین می‌تواند TRUE یا FALSE باشد. بولین معمولا در شرط‌ها استفاده می‌شود.


مثال.

   $x=true;
   $y=false;


آرایه

یك آرایه چندین مقدار را در یك متغیر ذخیره می‌كند.


مثال. آرایه Scars كه سه مقدار را در خود ذخیره می‌كند.

<?php
   $cars=array("Volvo","BMW","Toyota");
   var_dump($cars);
?>
مشاهده خروجی


اشیا

یك شیء نوع داده‌ای است كه داده و اطلاعاتی در مورد پردازش داده را در خود ذخیره می‌كند. در PHP شی باید صریحا اعلان بشود.

ابتدا باید یك كلاس تعریف كنیم. كلاس ساختمان داده‌ای است كه می‌تواند شامد متغیر و تابع باشد. برای تعریف كلاس از كلمه كلیدی class استفاده می‌كنیم. بعد از تعریف كلاس اشیا از نوع آنرا تعریف می‌كنیم.


مثال.

   <?php
   class Car
   {
    var $color;
    function Car($color="green")
    {
    $this->color = $color;
    }
    function what_color()
    {
    return $this->color;
    }
   }
?>
مشاهده خروجی


NULL

مقدار وی‍ژه NULL نشان می‌دهد متغیر هیچ مقداری ندارد. مقدار NULL مشخص می‌كند آیا متغیر خالی است یا خیر. همچنین برای متمایز كردن رشته خالی و مقدار پوچ در پایگاه‌های داده مفید است.


مثال. برای خالی كردن محتوای متغیرها می‌توانند با مقدار NULL مقداردهی شوند

<?php
   $x="Hello world!";
   $x=null;
   var_dump($x);
?>
مشاهده خروجی


ثابت

ثابت ها مشابه متغیرها هستند با این تفاوت که بعد از تعریف تغییر نمی‌کنند. نام ثابت با حرف یا زیرخط شروع می‌شود (علامت $ قبل از اسم ثابت نمی‌آید). ثابت ها برخلاف متغیرها در کل اسکریپت قابل استفاده هستند.

برای تعریف ثابت از تابع ()define استفاده می شود. این تابع دو پارامتر دارد اولی نام ثابت و دومی مقدار آن است. پارامتر سوم تابع دلخواه است که اگر true باشد نام ثابت حساس به متن نیست (پیش فرض false است).


مثال. تعریف ثابت حساس به متن.

<?php
   define("GREETING", "Welcome to hpkClasses.com!");
   echo GREETING;
?>

مثال. تعریف ثابت غیر حساس به متن.

<?php
   define("GREETING", "Welcome to hpkClasses.com!", true);
   echo GREETING;
?>


عملگرها

عملگرهای ریاضی

مثال نام عملگر
$x + $y جمع +
$x - $y تفريق -
$x * $y ضرب *
$x / $y تقسيم /
$x % $y باقیمانده %

مثال. دستورات زیر نتایج عملگرهای مختلف را نشان می‌دهد.

<?php
   $x=10;
   $y=6;
   echo ($x + $y); // outputs 16
   echo ($x - $y); // outputs 4
   echo ($x * $y); // outputs 60
   echo ($x / $y); // outputs 1.6666666666667
   echo ($x % $y); // outputs 4
?>
مشاهده خروجی


عملگرهای انتساب

عملگرهای انتساب برای نوشتن یك مقدار در یك متغیر استفاده می‌شود. عملگر ساده انتساب علامت مساوی (=)است كه مقدار عبارت سمت راست به متغیر سمت چپ را می‌دهد.

انتساب مشابه شرح
عملوند سمت چپ مقدار عبارت سمت راست را می گیرد x=y x = y
جمع x = x + y x += y
تفريق x = x - y x -= y
ضرب x = x * y x *= y
تقسيم x = x / y x /= y
باقيمانده x = x % y x %= y

مثال. دستورات زیر نتایج عملگرهای انتساب را نشان می‌دهد.

<?php
   $x=10;
   echo $x; // outputs 10
   $y=20;
   $y += 100;
   echo $y; // outputs 120
   $z=50;
   $z -= 25;
   echo $z; // outputs 25
   $i=5;
   $i *= 6;
   echo $i; // outputs 30
   $j=10;
   $j /= 5;
   echo $j; // outputs 2
   $k=15;
   $k %= 4;
   echo $k; // outputs 3
?>
مشاهده خروجی

عملگرهای رشته ای

عملگر نام مثال نتيجه
$txt2 ="Hello world!" $txt1 = "Hello"
$txt2 = $txt1 . " world!"
اتصال .
$txt1 ="Hello world!" $txt1 = "Hello"
$txt1 .= " world!"
اتصال انتساب .=

مثال. استفاده از عملگرهای رشته‌ای.

<?php
   $a = "Hello";
   $b = $a . " world!";
   echo $b; // outputs Hello world!
   $x="Hello";
   $x .= " world!";
   echo $x; // outputs Hello world!
?>
مشاهده خروجی


عملگرهای افزایش / كاهش

عملگر نام شرح
$X را یک واحد افزایش می‌دهد و بر می‌گرداند Pre-increment $x++
$X را بر می‌گرداند سپس یک واحد افزايش می‌دهد Post-increment ++$x
$X را یک واحد کاهش می‌دهد و بر می‌گرداند Pre-decrement --$x
$X را بر می‌گرداند سپس یک واحد کاهش می‌دهد Post-decrement $x--

مثال.

<?php
   $x=10;
   echo ++$x; // outputs 11
   $y=10;
   echo $y++; // outputs 10
   $z=5;
   echo --$z; // outputs 4
   $i=5;
   echo $i--; // outputs 5
?>
مشاهده خروجی


عملگرهای مقایسه ای

عملگرهای مقایسه‌ای برای مقایسه دو مقدار (عددی یا رشته ای) با هم استفاده می‌شوند.

عملگر نام مثال نتيجه
True if $x is equal to $y $x == $y Equal ==
True if $x is equal to $y and they are of the same type $x === $y Identical ===
True if $x is not equal to $y $x != $y Not equal !=
True if $x not is equal to $y $x <> $y Not equal <>
True if $x is not equal to $y, or they are not of the same type $x !== $y Not identical !==
True if $x is greater than $y $x > $y Greater than >
True if $x is less than $y $x < $y Less than <
True if $x is greater than or equal to $y $x >= $y Greater than or equal to >=
True if $x is less than or equal to $y $x <= $y Less than or equal to <=

مثال.

<?php
   $x=100;
   $y="100";
   var_dump($x == $y);
   echo "<br>";
   var_dump($x === $y);
   echo "<br>";
   var_dump($x != $y);
   echo "<br>";
   var_dump($x !== $y);
   echo "<br>";
   $a=50;
   $b=90;
   var_dump($a > $b);
   echo "<br>";
   var_dump($a < $b);
?>
مشاهده خروجی


عملگرهای منطقی

عملگر نام مثال نتيجه
True if both $x and $y are true $x and $y And and
True if either $x or $y is true $x or $y Or or
True if either $x or $y is true, but not both $x or $y Xor xor
True if both $x and $y are true $x && $y And &&
True if either $x or $y is true $x || $y || Or
True if $x is not true !$x Not !

عملگرهای آرایه ای

این عملگرها برای مقایسه دو آرایه بكار می‌روند.

عملگر نام مثال نتيجه
Union of $x and $y (but duplicate keys are not overwritten) $x + $y Union +
True if $x and $y have the same key/value pairs $x == $y Equality ==
True if $x and $y have the same key/value pairs in the same order and of the same types $x === $y Identity ===
True if $x is not equal to $y $x != $y Inequality !=
True if $x is not equal to $y $x <> $y Inequality <>
True if $x is not identical to $y $x !== $y Not-identity !==

مثال.

<?php
   $x = array("a" => "red", "b" =&qt; "green");
   $y = array("c" => "blue", "d" => "yellow");
   $z = $x + $y; // union of $x and $y
   var_dump($z);
   var_dump($x == $y);
   var_dump($x === $y);
   var_dump($x != $y);
   var_dump($x <>> $y);
   var_dump($x !== $y);
?>
مشاهده خروجی


دستورات كنترلی

دستورات شرطی

برای انجام عملیات تصمیم گیری از عبارات شرطی استفاده می‌شود. در PHP دستورات شرطی زیر را داریم :

• دستور if – تنها اگر شرط برقرار باشد كد را اجرا می‌كند.
• دستور if...else –اگر شرط برقرار باشد یك كد و اگر برقرار نباشد كد دیگری را اجرا می‌كند.
• دستور if…elseif…else – یك كد از بین چندین بلاك دستور را اجرا می‌كند.
• دستور switch – یك كد از بین چندین بلاك كد را اجرا می‌كند.

دستور if

ساختار كلی شرط if به صورت زیر است:

if (condition) {
   کدي که اگر شرط درست است بايد اجرا شود;
}


مثال. اگر ساعت كمتر از 20 باشد پیغام "!Have a good day" نمایش داده می‌شود.

<?php
$t=date("H");
if ($t<"20") {
   echo "Have a good day!";
}
?>
مشاهده خروجی


دستور if…else

ساختار كلی شرط كامل به صورت زیر است:

if (condition) {
   کدي که اگر شرط درست است بايد اجرا شود;
} else {
   کدي که اگر شرط غلط است بايد اجرا شود;
}


مثال. اگر ساعت كمتر از 20 باشد پیغام "!Have a good day" در غیراینصورت "!Have a good night" نمایش داده می‌شود.

<?php
   $t=date("H");
   if ($t<"20") {
      echo "Have a good day!";
   } else {
       echo "Have a good night!";
   }
?>
مشاهده خروجی


نکته. شرط های زیر درست در نظر گرفته می شوند:

• var$ ،اگر متغیر $var مقداری غیر از صفر، رشته تهی، FALSE يا NULL داشته باشد.
isset($var) ،اگر متغیر var$ غیر تهی باشد.
• TRUE, true, True

دستور if … elseif … else

ساختار كلی شرط كامل به صورت زیر است:

if (condition) {
   کدي که اگر شرط درست است بايد اجرا شود;
} elseif (condition) {
   کدي که اگر شرط درست است بايد اجرا شود;
} else {
   کدي که اگر شرط غلط است بايد اجرا شود;
}


<?php
   $t=date("H");
   if ($t<"10") {
      echo "Have a good morning!";
   } elseif ($t<"20") {
      echo "Have a good day!";
   } else {
      echo "Have a good night!";
}
?>
مشاهده خروجی


دستور switch

دستور switch برای انجام كارهای متفاوت بر اساس شرط‌های مختلف است. گرامر كلی آن به صورت زیر است:

switch (n) {
   case label1:
      code to be executed if n=label1;
      break;
   case label2:
      code to be executed if n=label2;
      break;
   case label3:
      code to be executed if n=label3;
   break;
   ...
   default:
      code to be executed if n is different from all labels;
}

n كه می‌تواند تنها یك متغیر یا یك عبارت باشد ارزیابی می‌شود. مقدار آن با مقادیر هر case مقایسه می‌شود اگر برابر با یكی از آنها بود بلاك كد مربوط به آن را اجرا می‌كند.

break برای جلوگیری اجرای بلاك‌های بعدی است.
Default در صورتی كه با هیچ كدام از حالت ها برابر نبود اجرا می‌شود.


مثال.

<?php
$favcolor="red";
switch ($favcolor) {
   case "red":
      echo "Your favorite color is red!";
      break;
   case "blue":
      echo "Your favorite color is blue!";
      break;
   case "green":
      echo "Your favorite color is green!";
      break;
   default:
      echo "Your favorite color is neither red, blue, or green!";
}
?>
مشاهده خروجی


دستورات حلقه تكرار

دستورات حلقه تكرار برای اجرای بلاكی از دستورات به تعداد مشخص است. در PHP چند نوع حلقه تكرار وجود دارد:

• while – تا وقتی كه شرط برقرار است بلاك كد تكرار می‌شود.
• do…while – ابتدا یكبار بلاك كد را اجرا می‌كند سپس تا وقتی كه شرط برقرار است بلاك را تكرار می‌كند.
• for – به تعداد مشخصی بلاك كد را تكرار می‌كند.
• foreach – بلاك كد برای عناصر یك آرایه اجرا می‌شود.

حلقه while

حلقه while بلاكی از كد را تا وقتی كه شرط مقابل آن درست است تكرارمی‌كند. شكل كلی آن به صورت زیر است:

while (condition is true) {
code to be executed;
}


مثال. حلقه زیر مقادیر 1 تا 5 را نمایش می‌دهد.

<?php
   $x=1;
   while($x<=5) {
    echo "The number is: $x <br>";
    $x++;
   }
?>
مشاهده خروجی


حلقه do…while

حلقه do…while همیشه ابتدا یكبار كد را اجرا می‌كند سپس شرط را بررسی می‌كند اگر شرط درست بود بلاك كد را تكرار می‌كند.

   do {
    code to be executed;
   } while (condition is true);


مثال. حلقه زیر مقادیر 1 تا 5 را نمایش می‌دهد.

<?php
   $x=1;
   do {
    echo "The number is: $x <br>";
    $x++;
   } while ($x<=5);
?>
مشاهده خروجی

مثال. ابتدا به متغیر x مقدار 6 داده می‌شود. حلقه اجرا می‌شود سپس شرط بررسی می‌شود.

<?php
   $x=6;
   do {
    echo "The number is: $x <br>";
    $x++;
   } while ($x<=5);
?>
مشاهده خروجی


دستور for

حلقه‌های for برای تكرار بلاكی از كد به تعداد مشخص است. فرم كلی آن به شكل زیر است:

for (init counter; test counter; increment counter) {
    code to be executed;
}

init counter مقداردهی شمارنده حلقه
test counter در هربار تكرار حلقه ارزیابی می‌شود اگر درست باشد حلقه تكرار می‌شود
increment counter افزایش شمارنده حلقه


مثال. نمایش اعداد 0 تا 10.

<?php
   for ($x=0; $x<=10; $x++) {
       echo "The number is: $x <br>";
   }
?>
مشاهده خروجی


دستور foreach

حلقه forach تنها روی آرایه‌ها كار می‌كند و برای هر عنصر درون آرایه تكرار می‌شود. گرامر آن به صورت زیر است:

foreach ($array as $value) {
   code to be executed; }

در هربار تكرار مقدار عنصر جاری آرایه به value$ داده می شود . اشاره گر آرایه یكی جلو می رود تا وقتی به انتهای آرایه برسد.


مثال. نمایش مقادیر آرایه colors$.

<?php
   $colors = array("red","green","blue","yellow");
   foreach ($colors as $value) {
       echo "$value <br>";
   }
?>
مشاهده خروجی


كاركردن با فرم ها در PHP

کارکردن با فرم‌ها یکی مهمترین فرآيندها در سایت‌های پویاست که شامل دو مرحله است: طراحی و ساخت خود فرم HTML و ایجاد اسکریپت برای دریافت و پردازش داده های فرم.

یک فرم توسط تگ <form> وتعدادی عنصر دیگر برای گرفتن ورودی ایجاد می شود. دو خاصیت مهم در تگ فرم action و method هستند. action صفحه‌ وبی که داده‌های فرم را دریافت می‌کند و method نحوه ارسال داده‌ها را تعیین می‌کنند. عناصر داخل فرم باید نامگذاری شوند تا در کد PHP بتوان به آنها دسترسی پیدا کرد. (برای مطالعه درباره نحوه ایجاد فرم‌های وب به اینجا مراجعه کنید).


مثال. يک نمونه فرم ساده در HTML با دو فیلد متنی و یك دكمه ارسال.

<html>
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

وقتی كاربر فرم را پر می‌كند و دكمه ارسال را كلیك می‌كند داده درون فرم برای فایل PHP با نام "welcome.php" جهت پردازش فرستاده می‌شود. داده فرم در این مثال با متد POST ارسال شده است.


$_GET و $_POST آرایه‌هایی هستند که توسط GET و POST ایجاد می‌شوند و برای جمع‌آوری داده از فرم هستند.

$_GET آرایه ای از متغیرهایی است كه از طریق پارامترهای URL به اسكریپت جاری ارسال شده است.
$_POST آرایه ای از متغیرهاست كه با متد POST به اسكریپت جاری داده شده است.

این آرایه‌ها داده‌ها را به صورت زوج كلید/مقدار ذخیره می‌كنند. كلید نام كنترل‌های درون فرم و مقدار داده وارد شده توسط كاربر است. هردو آرایه سراسری هستند و می‌توانند درون فرم، تایع، كلاس یا فایل مورد دسترسی قرار بگیرند.


مثال. داده های وارد شده در کنترل‌های name و email در فرم مثال قبل توسط دستور echo نمایش داده می‌شوند.

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

نتیجه فوق می‌تواند با ارسال توسط متد GET هم بدست بیاید. كافی است خاصیت method در تگ فرم به get تغییر كند كد PHP آن به صورت زیر می‌شود.

<html>
<body>

Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>

</body>
</html>


نکته. در اینجا اسکریپت بسادگی داده ها را برای نمایش در مرورگر می‌فرستد اما معمولا اين داده ها در پایگاه داده ذخیره می‌شوند یا با مقادیر ذخیره شده در پایگاه داده مقایسه می‌شوند یا در یک ایمیل ارسال می‌شوند.
نکته. آرایه $_REQUEST هم برای دسترسی به داده‌های وارد شده درون فرم است که با متد POST يا GET ارسال شده‌اند.


ارزیابی داده‌های فرم

یک موضوع مهم درباره فرم‌ها ارزیابی داده‌ها است. بررسی صحت داده‌های فرم امر مهمی برای محافظت آن در مقابل هکرها و اسپم‌ها می‌باشد.

ارزیابی داده توسط گزاره‌های شرطی انجام می‌پذیرد. اولین هدف بررسی خالی نبودن فیلدهای ورودی و مرحله بعد درستی مقدار يا فرمت آن است.

توابع متعددی در PHP برای تست مقدار متغیر وجود دارد. سه تابع که برای فرم‌ها زیاد استفاده می‌شوند ()isset، ()empty و ()is_null هستند. هر سه تابع یک مقدار بولین برمی‌گردانند.

• تابع ()isset وقتی متغیر تهی نیست مقدار true را برمی‌گرداند.
• تابع ()empty اگر متغیر رشته تهی، false، ()array، NULL، 0 یا متغیری باشد که مقداردهی نشده است مقدار true را برمی‌گرداند.
• تابع ()is_null تنها وقتی متغیر NULL باشد مقدار true را برمی‌گرداند. این تابع عکس ()isset عمل می‌کند.

تابع ()isset برای رشته تهی "" یا " " را مقدار true برمی‌گرداند به همین دلیل برای بررسی فیلدهای ورودی متنی مناسب نیست برای اینگونه ورودی ها تابع ()empty مناسب‌تر است.
نکته. برای تست اینکه داده ورودی یک عدد است از تابع ()is_numeric استفاده کنید.


مثال. یک نمونه فرم ورودی و اسکریپت PHP برای بررسی آن.


 

 


 

صفحه اصلی| PDF| درباره| تماس