آموزش کامل PHP – قسمت 12: فرم ها

فرم ها در php

به طور کلی فرم ها در برنامه نویسی وب از اهمیت و کاربرد فراوانی برخوردار هستند. در php از دو متغیر POST_$ و GET_$ برای جمع آوری اطلاعات فرم ها استفاده می کنیم. فرم ها به منظور ارتباط با کاربران استفاده می شوند.

با استفاده از تگ form در html می توانیم فرم مورد نظر را ایجاد کنیم. تمام فیلد های ورودی باید در داخل این تگ قرار گیرند. به مثال زیر توجه کنید:

<form action="send.php" method="post">

name: <input type="text" name="username">

<input type="submit" name="send" value=submit your name!">

</form>

همان طور که مشخص است در مثال فوق با استفاده از کد های html فرمی ساخته ایم. نکته مهم در مثال فوق دو خاصیت اکشن و متد می باشد. مقدار اکشن را برابر با فایل send.php قرار داده ایم که یعنی اطلاعات فرم ما بعد از ثبت به این صفحه ارسال خواهند شد. در بخش متد می توانیم یکی از حالت های post یا get را قرار دهیم که نتیجه کار هر دو یکی است و تفاوت آن ها را توضیح خواهیم داد.

کد بالا را در یک فایل به نام form.php قرار دهید و سپس این فایل را در همان پوشه new که در قسمت های قبل گفتیم قرار دهید. فایل دیگری به نام send.php بسازید و کد زیر را در آن کپی کنید.

<?php

$user = $_POST ['username'];

echo "your name is:" . $user;

<?

کاری که در مثال فوق انجام می شود به شرح زیر است:

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

اگر در زمان اجرای مثال فوق به نوار آدرس توجه کنید خواهید دید که ابتدا از آدرس http://127.0.0.1/new/form.php به فرم دسترسی داریم و سپس با زدن دکمه آدرس به http://127.0.01/new/send.php تغییر خواهد کرد.

از آن جا که ما ازمتد post استفاده کرده ایم اطلاعات به صورت امن و بدون نمایش دادن به کاربر به صفحه بعدی ارسال می شوند. اگر به جای post از get استفاده کنید خواهید دید که در نوار آدرس مقدار یوزرنیم قابل رویت برای کاربران است. حتی می شود آن را عوض کرد و این یک باگ امنیتی به حساب می آید.

پایان قسمت دوازدهم

آموزش کامل PHP – قسمت یازدهم: متغیرهای پیش فرض

متغیرهای پیش فرض

در قسمت های قبلی آموزش php گفتیم که در نام گذاری ها نباید از نام های رزرو شده استفاده کنیم. برخی از نام های رزرو همان متغیرهای پیش فرض php هستند. با دانستن نام این متغیر ها و استفاده از آن ها به امکانات خوبی در برنامه نویسی دسترسی خواهیم داشت. در زیر به یکی از این متغیرها اشاره شده:

متغیر SERVER_$

این متغیر در واقع یک آرایه از داده‌ها است که در آن اطلاعاتی از قبیل هدرها (Headers)، مسیرها (Paths) و … وجود دارد. همانطور که در بخش آرایه‌ها توضیح دادیم برای دسترسی به هر عضو یک آرایه باید نام آن عضو را در مقابل نام آرایه به‌کار ببرید. در مورد آرایه SERVER_$ باید از کدی شبیه به کد زیر استفاده کنید:

<?php

echo $_SERVER ['SCRIPT_NAME'];

?>

کد فوق را در یک فایل php نوشته و آن را در سرور مجازی خود قرار دهید. بعد از اجرا باید مسیر جاری فایل در مرورگر شما نمایش داده شود. حال کد زیر را اجرا کنید:

<?php

echo $_SERVER ['HTTP_HOST'];

<?

کد فوق هدر هاست کنونی را به شما نشان می دهد. مثلا در سرور محلی 127.0.0.1 را نشان می دهد.

 شاید این پرسش برای شما به وجود بیاید که این کدها چه کاربردی می تواند داشته باشد. فرض کنید تصاویر زیادی روی سرور شما وجود دارد و شما تصمیم می گیرید که مسیر آن ها را روی سرور تغییر بدهید. در این صورت باید هر جا که از آن تصاویر استفاده کرده اید آن ها را تغییر بدهید که این کار بسیار وقت گیر است. برای این کار کافی است تا یک فایل config.php ساخته و کد زیر را در آن قرار دهید.

<?php

$host = $_SERVER ['HTTP_HOST'];

$image_path = $host . '/images/';

<?

 در کد فوق ابتدا هدر هاست را در متغیر جدیدی به نام host قرار داده ایم، سپس مسیر جدیدی را با ترکیب متغیر host در متغیری به نام image_path به وجود آورده ایم. مسیر جدید پوشه ای به نام images است.

نکته: اگر دقت کرده باشید بین متغیر host و مسیر ‘/images/’ از یک نقطه استفاده کرده ایم. در پی‌اچ‌پی برای اتصال رشته‌های متنی به یکدیگر و نیز اتصال متغیرها به یکدیگر و همچنین اتصال متغیر‌ها به رشته‌های متنی می‌توانید از نقطه استفاده کنید.

حالا در فایل‌های پروژه خود هر کجا که بخواهیم از عکس‌های جدید استفاده کنیم کافی است ابتدا فایل Config.php که در بالا ایجاد کردیم را به صفحه include یا require اضافه کنیم و سپس از متغیر image_path در هرجا که خواستیم استفاده کنیم. به مثال زیر توجه کنید:

<?php

require ("config.php");

echo '<img src= '. $image_path . header.jpg'>';

<?

در جدول زیر لیست سایر اعضای آرایه SERVER_$ را که می توانید از آن ها استفاده کنید آورده ایم.

جدول اعضای آرایه SERVER_$ در PHP
نام فایل کنونی که در سرور اجرا شده را بر می‌گرداند $_SERVER[‘PHP_SELF’]
آدرس آی‌پی سرور کنونی را بر می‌گرداند $_SERVER[‘SERVER_ADDR’]
نام سرور کنونی را بر می‌گرداند $_SERVER[‘SERVER_NAME’]
هدر هاست کنونی را بر می‌گرداند $_SERVER[‘HTTP_HOST’]
آی‌پی سروری قبلی‌ای که کاربر از آن به سایت ما وارد شده را بر می‌گرداند $_SERVER[‘REMOTE_ADDR’]
پورت دستگاهی که کاربر از طریق آن با سرور ارتباط برقرار کرده را بر می‌گرداند $_SERVER[‘REMOTE_PORT’]
نام مسیر دقیق فایلی که فراخوانی شده را بر می‌گرداند $_SERVER[‘SCRIPT_FILENAME’]
پورتی که سرور از آن برای ارتباطات خود استفاده می‌کند را برمی‌گرداند $_SERVER[‘SERVER_PORT’]
نام دقیق فایلی که فراخوانی شده را بر می‌گرداند $_SERVER[‘SCRIPT_NAME’]
آدرس URI $_SERVER[‘REQUEST_URI’]

می توانید تک تک موارد فوق را تمرین کنید و نتیجه آن را در مرورگر خود مشاهده کنید.

آموزش کامل PHP – قسمت دهم: توابع

در این قسمت از سری آموزش های php به آموزش توابع می پردازیم. توابع از مهمترین بخش های هر زبان برنامه نویسی می باشد.

تابع (function)

مفهوم تابع در اصل همانی است که در دروس ریاضی دبیرستان با آن آشنا شده ایم. یعنی ماشینی که ورودی را گرفته و عملیاتی روی آن انجام می دهد و سپس خروجی می دهد. در برنامه نویسی نیز دقیقا همین است.

در php دو نوع تابع داریم، یکی توابع پیش فرض که از قبل در برنامه وجود دارد و یکی توابعی که توسط کاربر نوشته می شوند. توابع پیش فرض در واقع همان دستوراتی هستند که در php وجود دارند مثلا echo که ورودی را از ما می گیرد و بدون تغییر چاپ می کند.

چند نکته

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

ساختار کلی توابع در php

<?php

function name() {

func code

}

کد بالا نمونه ساختار یک تابع است. اگر تابع ورودی داشته باشد آن را در پرانتز جلوی نام تابع قرار می دهیم. عملیات را در قسمت کد و بین آکولاد ها می نویسیم. توجه داشته باشید که نام تابع نباید از کلمات کلیدی پی اچ پی باشد.

پارامتر های تابع (ورودی تابع)

تابع می تواند یک یا چند ورودی داشته باشد یا اصلا ورودی نداشته باشد. ورودی را می توانیم به صورت پارامتری به تابع ارسال کنیم. برای این منظور برای هر ورودی یک متغیر در داخل پرانتز جلوی نام تابع تعریف می کنیم. به مثال زیر توجه کنید:

<?php

function myfunc($name , $age){

echo your name is $name and age is $age;

}

myfunc("mohammad" , "27");

?>

کار تابع فوق این است که نام و سنی را که برای آن ارسال کرده ایم را در خروجی نمایش دهد. عملیات تابع در زمان فراخوانی انجام می شود. یعنی خط پنجم.

آرگومان های ورودی پیش فرض

در مثال فوق اگر در هنگام فراخوانی تابع به تعداد پارامترها، ورودی نداشته باشیم برنامه با خطا مواجه می شود. برای جلوگیری از خطا می توانیم یک مقدار پیش فرض برای هر کدام از پارامترهای ورودی تابع در نظر بگیریم.

php?>

("function myfunc ($name = "mohammad

{ ;echo $name }

;()myfunc

<?

در کد فوق هنگام تعریف تابع یک مقدار پیش فرض برای پارامتر نام در نظر گرفته شده بنابراین با وجود این که در هنگام فراخوانی تابع ورودی داده نشده برنامه با خطا مواجه نمی شود.

مقادیر بازگشتی در تابع

برای استفاده از مقادیر بازگشتی در تابع از دستور return به صورت زیر استفاده می کنیم.

<?php

function zarb($a , $b) {

$c = $a * $b;

return $c;

}

$d = zarb(3 , 3);

echo $d;

?>

در کد فوق مقدار بازگشتی تابع ضرب را در متغیر d ریخته و آن را در خروجی نمایش داده ایم.

آموزش کامل PHP – قسمت نهم: معرفی Include و require

در این قسمت از آموزش php یک پرژه کوچک را با هم شروع خواهیم کرد و آموزش ها را با شیوه جذاب و کاربردی تری ادامه خواهیم داد. قبل این که پروژه را شروع نکاتی را ذکر می کنیم.

هنگام نوشتن پروژه های بزرگ بهتر است که کدها را در بخش های مختلف و در فایل های جداگانه بنویسیم. قصد داریم با دستورات include و require کدها و پروژه های خود را سازماندهی کنیم.

دستور include

با استفاده از دستور include می توانیم محتویات یک فایل را در فایل دیگر استفاده کنیم. برای شروع یک پوشه جدید به نام mysite در پوشه htdocs نرم افزار سرور مجازی xampp ایجاد کنید. در این پوشه سه فایل php به نام های index.php, head.php و footer.php ایجاد کنید.

اگر دقت کرده باشید معمولا فایل های سربرگ و پاورقی در تمام صفحات یکسان است. حال فرض کنید قصد ساختن وب سایتی را داشته باشیم که تعداد صفحات آن زیاد است و بخواهیم در بعضی از صفحات تغییراتی در سربرگ و پاورقی داشته باشیم، در این صورت ساختن این فایل ها برای تک تک صفحه ها کار خسته کننده و زمان بری است. در این مواقع بهترین کار تکه تکه کردن کدها و فایل ها است و این فقط شامل مواردی مشابه فوق نمی شود. رفته رفته با بزرگتر شدن پروژه این مساله اهمیت بیشتری پیدا می کند و بهترین کار این است که برای هر بخش فایل ها و پوشه های خاص آن را ایجاد کنیم. مثلا توابع را در یک فایل یا کدهای مربوط به ثبت نام را در یک فایل و … در این صورت ساختار پروژه ما از انسجام بیشتری برخوردار خواهد بود، توسعه و یا خطا یابی آن نیز راحتر می شود.

حال به ادامه پروژه می پردازیم، فایل head.php را باز کرده و کدهای زیر را در آن قرار دهید:

<!DOCTYPE html>

<html>

<style>

#header {

background-color:black;

color:white;

text-align:center;

padding:5px;

}

#section {

padding:10px;

}

#footer {

background-color:black;

color:white;

clear:both;

text-align:center;

padding:5px;

}

</style>

</head>

<body>

<div id="header">

<h1>My Site</h1>

</div>

سپس فایل index.php را باز کرده و کدهای زیر را در آن قرار دهید:

<?php

include ("head.php");

?>

<div id="section">

<h2>learning php - pardiswp.com</h2>

<p>we learning php in pardiswp. php is very powerful for developing any kind of web applications. so we love it!</p>

</div>

<?php

include ("footer.php");

?>

خب تا اینجا ما در بالا و پایین کد index.php  دو دستور ساده php به کار برده ایم. در قسمت بالای کد فوق فایل head.php را به ایندکس اضافه کرده ایم که برای این کار از دستور اینکولود استفاده شده است. در پایین نیز فایل footer.php را به کد اضافه کردیم. در این صورت هر تغییری که در فایل های سربرگ و پاورقی ایجاد شود در فایل index.php هم اعمال می شود.

در نهایت کد زیر را در فیل footer.php می نویسیم:

<div id="footer">

Copyright © pardiswp.com

</div>

</body>

</html>

حالا مرورگر خود را باز کنید و پروژه را در آن تست کنید. باید آدرس http://127.0.0.1/mysite/index.php را در مروگر باز کنید. تصویری مشابه زیر خواهید دید:

پروژه تست php

حال اگر روی صفحه راست کلیک کنید و گزینه view source page را بزنید کد سورس نهایی که ترکیبی از کد فایل ها است را خواهید دید. در این کد در فایل ایندکس به جای دستور include کد همان فایلی که فراخوانی کرده ایم، قرار می گیرد.

دستور require

این دستور هم مشابه دستور include عمل می کند و تنها در نوع بررسی خطاها متفاوت است. یعنی در زمان فراخوانی اگر فایل وجود نداشته باشد یا مسیر آن اشتباه باشد، php خطا نشان می دهد. روش استفاده از این دستور نیز دقیقا مشابه اینکولود است.

توجه داشته باشید از آن جایی که هر سه فایل ما در یک پوشه است روش آدرس دهی ما به شکلی که در فوق استفاده شده می باشد. روش آدرس دهی در php  بسیار ساده است که در قسمت های آینده و در خلال پروژه های بیشتر با آن آشنا خواهیم شد.

در آخر توصیه می کنیم که این پروژه را به دقت انجام دهید و تمرین داشته باشید. ما همین پروژه را در جلسات آینده تکمیل تر خواهیم کرد. فایل پروژه را می توانید از [highlight color=”blue”]این قسمت[/highlight] دانلود کنید.

آموزش کامل PHP – قسمت هشتم: switch

در این قسمت از آموزش یکی دیگر از دستورات پایه ای زبان php را آموزش خواهیم داد تا رفته رفته در قسمت های بعدی وارد مباحث پیشرفته تر شویم. دستور سویچ یکی از دستورات کاربردی در زبان های برنامه نویسی مانند پی اچ پی است که کاربرد آن شبیه به else … if است. اگر یادتان باشد در قسمت های قبل به طور کامل در مورد این دستورات شرطی صحبت کردیم و گفتیم که برای بررسی چند شرط می توانیم استفاده کنیم. اما دستور switch جایگزین بهتری برای شرط های چندگانه است.

دستور شرطی switch

روش استفاده از دستور switch به صورت زیر است:

<?php

$a = 1;

switch ($a){

case "1":

echo "number 1";

break;

case "2":

echo "number 2";

break:

default:

echo "number 1 & 2 not";

break;

} ?>

اگر به کد فوق توجه کنید ابتدا یک متغیر تعریف کرده ایم و مقدار یک را به آن نسبت داده ایم سپس آن متغیر را در پرانتز و در مقابل دستور switch قرار داده ایم. در ساختار سویچ هر case مانند else if عمل می کند و شرط جداگانه ای است. عملکرد برنامه به این صورت است که اگر مقدار متغیر 1 بود یعنی کیس 1، “عدد 1 است” چاپ می شود. اگر 2 بود، عدد 2 و اگر هیچکدام نبود دستور درون دیفالت اجرا می شود.

همان طور که مشاهده می کنید عملکرد این دستور دقیقا مشابه else if است و انسجام بهتری دارد. توصیه می شود برای بررسی چند شرط از این دستور استفاده کنید.

اصول کلی استفاده از switch

  1. قرار دادن آنچه قصد بررسی مقدارش را داریم در پرانتز مقابل دستور switch (متغییر یا دستوراتی که نهایتا یک خروجی داشته باشند)
  2. به ازای هر شرط یک دستور case را نوشته و علامت دو نقطه : را در مقابل قرار می دهیم
  3. کد مورد نظر را برای شرطی که در مرحله قبل نوشتیم، می نویسیم
  4. با استفاده از عبارت break و سپس قرار دادن علامت نقطه ویرگول ; شرط یاد شده را پایان می‌دهیم
  5. به ازای هر شرط دیگری که قصد بررسی آن را داریم مراحل ۲ تا ۴ را مجددا تکرار می‌کنیم
  6. همانند مثال بالا، در نهایت default را در پایین‌ترین بخش دستور switch می‌نویسیم تا در صورتی که هیچ کدام از شرط‌ های نوشته شده برقرار نبود، این دستور اجرا شود

برای درک بهتر این دستور یک مثال می زنیم. نام شهر را از کاربر گرفته و در صورتی که شیراز بود پیام خوشامد را نمایش می دهیم.

<?php

$usercity = 20;

switch ($usercity){

case "shiraz":

echo "welcome";

break;

case default:

echo "you are not from shiraz";

break;

} ?>

نکته: نوشتن بخش default اجباری نیست ولی پیشنهاد می کنیم همیشه این بخش را هم بنویسید تا شرایط را بهتر کنترل کنید.

پایان قسمت هشتم

آموزش کامل PHP – قسمت هفتم: حلقه for

در ادامه قسمت قبلی در این قسمت نیز در مورد حلقه ها و این بار حلقه for صحبت می کنیم.

حلقه for

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

<?php

for (counter; condition; step){

code to run

} ?>

در کد فوق counter شمارنده، condition شرط و step گام حلقه می باشد. همچنین دقت کنید که بین این آیتم ها علامت نقطه ویرگول قرار دارد. مثال:

<?php

for ($i = 1; $i < 7; $i++){

echo "$i <br>";

} ?>

در مثال فوق i شمارنده حلقه با مقدار اولیه 1 است. شرط حلقه نیز تا زمانی که i کمتر 7 باشد بر قرار است. گام حلقه هم 1+ است. دستور بدنه حلقه که داخل آکولاد نوشته شده در هر گام مقدار جاری متغیر را چاپ می کند. بنابراین خروجی این برنامه اعداد 1 تا 6 است.

استفاده از حلقه for به جای while باعث می شود که کدنویسی شما کمتر و سریعتر شود. حلقه ها در عین سادگی قدرت زیادی در برنامه نویسی دارند. در مثال زیر جدول ضرب اعداد 1 تا 10 را با حلقه for تولید می کنیم:

<table align = "center">

<?php

for ($i = 1; $i <= 10; $i++){

for ($j=1; $j <= 10; $j++){

echo "$i * $j";

echo "-"; }

echo "<br>";

echo "<br>";

} ?>

</table>

در مثال فوق از حلقه for به صورت تو در تو استفاده کرده ایم. از حلقه های while نیز می توان به صورت تو در تو تا بی نهایت استفاده کرد.

حلقه دیگری به نام for each نیز در php وجود دارد که در قسمت های آینده ی آموزش و در خلال پروژه با آن آشنا خواهیم شد.

آموزش کامل PHP – قسمت ششم: حلقه while

در قسمت پنجم آموزش php در مورد ساختار شرطی if صحبت کردیم. در این قسمت حلقه تکرار while را توضیح خواهیم داد.

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

حلقه while

while معادل فارسی “تا وقتی که” می باشد و کاربرد آن در برنامه نوبسی به معنی لغوی آن شبیه است. یعنی دستوراتی که در آن قرار دارند تا وقتی که شرط حلقه برقرار باشد اجرا خواهند شد. به طور کلی حلقه ها در زبان های برنامه نویسی ساختار های تکرار و تصمیم هستند. هر حلقه از دو قسمت اصلی به نام شرط و بدنه تشکیل می شود. دستورات در بدنه قرار می گیرند. به مثال زیر توجه کنید:

<?php

$i = 0;

while (i<6){

echo "$i <br>";

i++;

} ?>

در مثال فوق ابتدا متغیر i را با مقدار اولیه صفر تعریف کرده ایم. سپس در مقابل نام حلقه شرط آن را داخل پرانتز مشخص کرده و در داخل بدنه حلقه بین 2 علامت آکولاد دستورات را نوشته ایم. طرز کار حلقه فوق بدین صورت است که ابتدا شرط حلقه بررسی می شود و در صورت بر قرار بودن، دستورات بدنه تا زمانی که شرط بر قرار است اجرا می شوند و بعد از آن کنترل برنامه از حلقه خارج خواهد شد. خروجی مثال فوق اعداد 0 تا 5 می باشد.

در حلقه while اگر شرط برقرار نباشد دستورات بدنه حلقه اجرا نخواهند شد. اما در php راهی وجود دارد که در صورت نیاز دستورات بدنه، حتی بدون برقراری شرط حلقه می توانند یک بار اجرا شوند. برای این منظور از دستور زیر استفاده می کنیم.

 حلقه do … while

این دستور زمانی استفاده می شود که قصد داریم دستورات بدنه حلقه حداقل یک بار اجرا شوند. در do … while ابتدا دستورات یک بار اجرا شده و سپس شرط حلقه بررسی می شود. به مثال زیر توجه کنید:

<?php

$i = 1;

do{

echo "number is $i <br>";

$i++;

} while ($i <= 5);

?>

همان طور که مشاهده می کنید شرط while چه برقرار باشد و چه نباشد دستورات قبل از آن حتما یک بار اجرا می شود. در مثال فوق خروجی برنامه اعداد 1 تا 5 خواهد بود زیرا شرط حلقه بر قرار است و تا زمانی که شرط درست است دستورات بدنه do اجرا می شوند.

پایان قسمت ششم

آموزش کامل PHP – قسمت پنجم: دستورات شرطی

در قسمت چهارم آموزش php با آرایه ها در این زبان آشنا شدیم. در این قسمت از آموزش با عبارت های شرطی در پی اچ پی آشنا خواهیم شد.

دستور شرطی if

دستور if به معنی “اگر” همواره یکی از مهترین و پرکاربردترین دستورات در تمامی زبان های برنامه نویسی است. به وسیله این دستور شما می توانید کنترل شرطی در مواقع لزوم در کد نویسی داشته باشید. روش استفاده از این دستور به صورت زیر است.

<?php

$x1 = "20";

$x2 = "15";

if (x1 == "20") {

echo 'this is a';

}

else {

echo 'this is b';

} ?>

 همان طور که مشاهده می کنید شرط در پرانتز در مقابل if قرار می گیرد و دستوراتی که می خواهیم در صورت برقرار بودن شرط اجرا شود در آکولاد می نویسیم. دستوراتی که بعد از else می آیند در صورت برقرار نبودن شرط اجرا می شوند. خروجی دستورات بالا چاپ عبارت ‘this is a’ در مروگر است، حال شما برای تمرین کد را طوری تغییر دهید که عبارت مقابل else در مرورگر نمایش داده شود.

یک روش دیگر در استفاده از if به صورت زیر است:

<?php

$x = true;

$y = false;

if ($x) {

echo 'this is true';

}

else {

echo 'this is false';

} ?>

در مثال فوق به دلیل درست بودن شرط مقابل if عبارت ‘this is true’ در مرورگر نشان داده می شود. حال اگر شرط را با y$ عوض کنیم به دلیل نادرستی شرط عبارت مقابل else در مرورگر چاپ خواهد شد.

کنترل چند شرطی با else if

اگر در برنامه خود با شرایطی مواجه شدید که مجبور به بررسی چند حالت مختلف شوید و در صورت برقراری هر کدام از شرط ها خواستید دستوراتی را اجرا کنید. در این مواقع بهتر است از else if استفاده کنید. به مثال زیر توجه کنید:

<?php

$x1 = "20";

$x2 = "15";

$x3 = "10";

if (x1 == "20") {

echo 'this is a'; }

else if ($x2 =="15") {

echo 'this is b'; }

else if ($x3 == "10") {

echo 'this is c'; }

else {

echo 'this is null'; } ?>

همان طور که مشاهده می کنید در مقابل else if شرط های دیگر را به کار برده ایم.

شرط های تو در تو

if را به صورت تو در تو نیز می توانیم به کار بریم که با بزرگ تر شدن پروژه ها کاربرد پیدا می کند. این روش را با مثال ساده ای بیان می کنیم:

<?php

$name = "mohammad";

$family = "safari";

if ($name == "mohammad") {

if ($family == "safari") {

echo "full name is mohammad safari";

} }

else {

echo "not found";

} ?>

ابتدا شرط اول بررسی می شود و اگر درست بود شرط دوم نیز بررسی می شود و در صورت درستی نام کامل نمایش داده می شود. توجه داشته باشید که اگر هر کدام از دو شرط بر قرار نباشد کنترل برنامه به else رفته و عبارت “not found” نمایش داده می شود.

در php می توان چند شرط را همزمان نیز به کار برد مثلا شرط های مثال فوق را به صورت زیر نیز می توان نوشت:

if ($name == “mohammad” && $family == “safari”)

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

اگر سوالی در مورد هر یک از مباحث مطرح شده داشتید، آن را در بخش دیدگاه‌ها بپرسید.

آموزش کامل PHP – قسمت چهارم: آرایه ها

در قسمت سوم آموزش php با آرایه ها در پی اچ پی آشنا شدیم. در این قسمت با آرایه ها کار می کنیم.

آرایه در زبان PHP

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

نحوه تعریف آرایه در PHP

برای تعریف متغییر در پی اچ پی از علامت $ مانند تعریف متغییر ها استفاده می کنیم با این تفاوت که کلمه کلیدی Array را بعد از علامت = به کار می بریم. به مثال زیر توجه کنید:

<?php

$name = Array (“pardiswp”,”msjob”,”admin”);

?>

همان طور که در مثال مشخص است ما سه نام را در آرایه ای به نام name ذخیره کردیم.

دسترسی به عناصر آرایه

برای دسترسی از عناصر آرایه از ایندکس گذاری استفاده می کنیم، به این معنی که عناصر آرایه را به ترتیب شماره گذاری می کنیم که این شماره گذاری در تمام زبا ن های برنامه نویسی از صفر شروع می شود. مثلا در مثال فوق ایندکس “msjob” عدد یک است یعنی عنصر یکم آرایه است. مثال:

<?php

$name = Array (“pardiswp”,”msjob”,”admin”);

echo $name[1];

؟>

دستور echo در مثال فوق کلمه “msjob” را چاپ می کند.

مقدار دهی به عناصر آرایه

برای مقدار دهی به عناصر آرایه از علامت <= به صورت زیر استفاده می کنیم:

<?php

$user = Array (“name” => “mohammad” , “lastname” => “safari” , “age” => “25”);

?>

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

$user [age];

نکته: در مثال دوم نیز همچنان می توان مانند مثال اول به عناصر دسترسی داشت.

یک روش دیگر برای مقدار دهی به آرایه ها به صورت زیر است:

<?php

$user [name] = “mohammad”;

$user [lastname] = “safari”;

$user [age] = “25”;

echo $user [age];

?>

تنها روش در این بخش فرق کرده و نتیجه یکسان است. پی‌اچ‌پی در اکثر بخش‌ها به همین صورت دست توسعه دهنده را بسیار باز گذاشته و می‌توان حتی در مواردی با خلاقیت فردی روش‌های جدیدی برای استفاده از پیش‌فرض‌های برنامه نویسی بدست آورد.

آرایه های چند بعدی

آرایه هایی که در بالا بررسی کردیم یک بعدی بودند. یکی از بهترین قابلیت های php این است که می توان آرایه هایی با بی نهایت بعد در آن ایجاد کرد. فرض کنید اطلاعات چند کاربر را از  بانک اطلاعاتی دریافت کنیم، در این حالت بهتر است که اطلاعات هر نفر را در یک آرایه جداگانه قرار دهیم. در این جا از آرایه های چند بعدی استفاده می کنیم.

 

<?php

$users = Array (“user1” => array (“name” => “mohammad”, “family” => “safari”),

“user2” => array (“name” => “reza”, “family” => “karami”));

?>

همان طور که در کد بالا می بینید این بار یک آرایه به هر عضو داده می شود. در واقع ما اطلاعات دو کاربر را در آرایه ای به نام users قرار دادیم. این آرایه خود از دو آرایه دیگر تشکیل شده است. حال فرض کنید می خواهیم نام کاربر اول را در خروجی چاپ کنیم. فقط کافی است که از دو ایندکس استفاده کنیم.

echo $users [user1][name];

برای یادگیری کامل این قسمت تمام کد های فوق را در حالت های مختلف تمرین کنید.

پایان قسمت چهارم

آموزش کامل PHP – قسمت سوم: عملگرها

در قسمت دوم آموزش php با متغییر ها آشنا شدیم. در این قسمت با عملگرها در زبان پی اچ پی آشنا خواهیم شد.

عملگرها

عملگرها در واقع عملیات روی داده ها را انجام می دهند. برای مثال جمع یک عملگر است که کار آن عملیات جمع را روی دو عدد است.

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

عملگرهای اصلی همان عملیات اصلی در ریاضیات هستند. عملگرهای اصلی در پی اچ پی شامل جمع (+)، تفریق (-)، ضرب (-)، تقسیم (/) و باقیمانده (%) می باشند. به کدهای زیر توجه کنید توضیحات به صورت کامنت به کدها اضافه شده است.

<?php

$num1 = 3;

$num2 = 4;

//addition;

echo $num1 + $num2;   //this will print 7

//subtraction

echo $num2 – $num1;   //this will print 1

//multipliction

echo $num1 * $num2;   //this will print 12

//divition

echo $num4 / $num1;   //this will print 1 (تقسیم صحیح)

?>

در برنامه فوق 4 عمل اصلی را با php انجام دادیم. عملگر بعدی باقیمانده است، این عملگر برای گرفتن باقیمانده تقسیم به کار می رود. به مثال زیر توجه کنید.

<?php>

//module

$num1 = 9;

$num2 = 2;

echo $num1 / $num2;   //this will print 1

?>

عملگرهای افزایشی و کاهشی

از این عملگرها برای افزایش و کاهش یک واحدی استفاده می شوند و با علامت ++ و __ نشان داده می شوند. به عنوان مثال ++x& معادل 1 + x$ است. درمورد — نیز به همین صورت است.

گاهی در برنامه نویسی شرایطی پیش می آید که نمی توان از این عملگرها به صورت فوق استفاده کرد. فرض کنید می‌خواهید مقدار یک متغییر را ابتدا چاپ کنید یا از آن خروجی بگیرید و سپس آن را یک واحد افزایش دهید. در این شرایط ++ نمی‌تواند به شما کمک کند چراکه به حالت معمول نوشتن کدی مانند ++x$ باعث می‌شود ابتدا یک واحد به متغیر اضافه و سپس هرچه نتیجه باشد به عنوان خروجی مد نظر قرار می‌گیرد.

اگر می‌خواهید ابتدا به مقدار کنونی متغییر دسترسی یافته و سپس عملیات افزایش یا کاهش را انجام دهید باید از کدی مانند زیر استفاده کنید و عملگرهای مورد بحث را پیش از نام متغییر بکار بگیرید:

<?php

&x = 1;

echo ++$x;  //ابتدا یک واحد به متغییر افزوده شده و سپس در خروجی چاپ می شود، عدد 2 در خروجی چاپ می شود

echo “<br>”;

echo $x;  //عدد 2 در خروجی چاپ می شود

?>

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

این نوع عملگرها برای انتساب یک مقدار به متغییرها استفاده می شود. یکی از این عملگرها = است که پیشتر در مثال ها از آن استفاده کردیم. از دیگر عملگرهای انتساب به =+ و =- می توان اشاره کرد که کارکرد آن ها به صورت زیر است.

<?php

$num1 = 90;

echo $num1 += 50;  //this is same $num1 = $num1 + 50

echo $num1;  //this will print 140

?>

در کد بالا ابتدا مقدار 90 را به متغیر num1 اختصاص دادیم. سپس با استفاده از عملگر اختصاص دادن =+ مقدار 50 را به متغیر num1 اضافه و نتیجه را مجددا در خود متغیر ذخیره کردیم. در نهایت با دستور echo مقدار نهایی num1 را در مرورگر نمایش دادیم. عملگرهای انتساب به شرح زیر هستند:

 
عملگر کارکرد توضیح
$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 باقی مانده

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

از این نوع عملگرها برای مقایسه دو داده استفاده می‌شود. این عملگرها خروجی دو حالته دارند بدین معنا که پس از انجام مقایسه یا مقدار صحیح (true) یا مقدار غلط (false) را باز می‌گردانند. در جدول زیر می‌توانید این عملگرها و کاربرد آن‌ها را ببینید:

عملگر نام مثال نتیجه
== برابری $x == $y اگر مقدار x و y برابر باشد true را برمی‌گرداند
=== یکسان $x === $y اگر مقدار x و y برابر و نوع آن‌ها نیز یکی باشد true را برمی‌گرداند
=! عدم برابری $x != $y اگر مقدار x و y برابر نباشد true را برمی‌گرداند
<> عدم برابری $x <> $y اگر مقدار x و y برابر نباشد true را برمی‌گرداند
==! عدم یکسان بودن $x !== $y اگر مقدار x و y برابر نباشد و نوع آن‌ها نیز یکی نباشد true را برمی‌گرداند

پایان قسمت سوم