کار باphp
دهلران پی سی
سایت جامع علمی ,آموزشی,فرهنگی و تفریحی



[align=left]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | تعریف متغیر</title>
<style type="text/css">
body{
font-family:Tahoma, Geneva, sans-serif;
font-size:12px;
direction:rtl;
}
</style>
</head>
<body>
<?php
$ahmad = 23;
$hossein = 13;
$mohammad = 54;
$all = $ahmad + $hossein + $mohammad;
$ahmad_hossein = $ahmad + $hossein;
echo "احمد، حسین و محمد $all کتاب دارند!<br />";
echo "احمد و حسین $ahmad_hossein کتاب دارند!<br />";
?>
</body>
</html>[/align]


توضیح:
- همانطور که در مثال بالا ملاحظه می کنید، کدهای php را می توان در تگهای html نیز نوشت (کد های php را در اصطلاح html embedded گویند).
- در مثال بالا چند متغیر ساده تعریف کردیم و دو خروجی از آنها گرفته ایم.
شیوه نوشتن یک متغیر:
برای نوشتن و تعریف یک متغیر معمولا از سه شیوه می توان استفاده کرد که البته تفاوتهایی نیز با هم دارند:
- نوشتن مقدار متغیر بین علامت اپوستروف' '، از این شیوه نگارش برای نوشتن رشته های استاتیک استفاده می شود؛ یعنی اگر به فرض در بین مقادیر، متغیری نیز قرار دهید، مقادیر آن جایگزین نمی شود.
- نوشتن مقدار متغیر بین علامت نقل قول " "، از این روش برای جایگزینی مقادیر داینامیک و یا استاتیک استفاده می شود، به عنوان مثال اگر یک متغیر را به این روش در کدمان قرار دهیم، مقادیر آن جایگزین خودش می شود.
- نوشتن مقدار متغیر بدون علامت، از این شیوه نیز برای تعریف متغیر های تو در تو و اعداد استفاده می شود؛ به مثال زیر توجه کنید:


[align=left]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>وبگو | تعریف متغیر در php به روش های مختلف </title>
<style type="text/css">
body{
font-family:Tahoma, Geneva, sans-serif;
font-size:12px;
direction:rtl;
}
</style>
</head>
<body>
<?php
//متغیر با اپوستروف
$name = 'webgoo';
//متغیر با نقل قول + اپوستروف
$web = "$name".'.ir';
//متغیر بدون علامت
$port = 25;
//چند خروجی فرضی
echo $web.'<br />';
echo $web.'&nbsp;'.$port.'<br />';
?>
</body>
</html>[/align]


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


عملگرهای (Operators) محاسبه و مقایسه در php

مثل بسیاری از زبان های برنامه نویسی، php نیز از قوانین و عملگرهای خاصی جهت محاسبه و مقایسه مقادیر استفاده می کند، در بحث پیشین از بخش آموزش های مقدماتی، دیدیم که چگونه می توان متغیر ها را تعریف کرد و گفتیم که متغیر می تواند هر نوع داده ای باشد که در کد ما مورد نیاز است (اعم از متغیر هایی که خودمان تعریف می کنیم یا توسط کاربران و از طریق فرم های html ارسال و پردازش می شود یا مواردی دیگر)، در این یادداشت می خواهیم ببینیم که php چگونه مقادیر را مقایسه و اعمال ریاضی را محاسبه می کند (البته از عبارت ریاضی، ترسی نداشته باشید؛ ریاضی در بحث ما در حد محاسبات اولیه است و بیش از این به آن نیازی نیست!).

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

عملگرهای محاسبه (arithmetic operators)در php

 

 

php با استفاده از علائم زیر، محاسبات ریاضی را انجام می دهد.

برای جمع از علامت + استفاده می کنیم:

[align=left]

 

$a = 5;

$b = 8;

$addition = $a + $b;

?>[/align]

در مثال بالا دو متغیر فرضی a و b را با هم جمع کرده ایم که حاصل 13 خواهد شد.

برای تفریق از علامت - استفاده می کنیم:

[align=left]

 

$a = 5;

$b = 8;

$subtraction = $b - $a;

?>[/align]

حاصل مثال بالا 3 خواهد بود.

برای ضرب از علامت * استفاده می کنیم:

[align=left]$a = 5;

$b = 8;

$multiplication = $b * $a;

?>[/align]

حاصل مثال بالا 45 خواهد بود.

برای تقسیم از علامت / استفاده می کنیم:

[align=left]

$a = 5;

$b = 8;

$division = $b / $a;

?>[/align]
حاصل مثال بالا به صورت اعشاری و 1.6 خواهد بود.

برای بدست آوردن باقیمانده بخش پذیری نیز از علامت % استفاده می کنیم:

[align=left]

 

$a = 5;

$b = 8;$modulus = $b % $a;?>[/align]
حاصل مثال بالا 3 خواهد بود، چرا که 8 تنها یک بار بر 5 بخش پذیر است (یعنی یک 5 تایی در 8 قابل گنجاندن است) و باقیمانده عدد 3 خواهد بود.

[size=medium]ترکیب عملگرهای محاسبه با مساوی[/size]

یکی از قابلیت های php در محاسبات، امکان ترکیب علائم ریاضی با مساوی است که برای کوتاه کردن کدنویسی استفاده می شود، بر اساس این روش علائم زیر معادل روش استاندارد خود هستند (نتیجه همان است فقط شیوه نگارش فرق می کند، از این شیوه معمولا برای تکرار یک متغیر با مقادیر مختلف در یک کد استفاده می شود):

علامت =+ معادل = و + است، مثال زیر روشن است:

[align=left]

$a += 5;//short method

$a = $a + 5//long method

?>[/align]

علامت =- معادل = و - است:
[align=left]

$a -= 5;//short method

$a = $a - 5//long method

?>[/align]

علامت =* معادل = و * است:
[align=left]

 

$a *= 5;//short method

$a = $a * 5//long method

?>[/align]

علامت =/ معادل = و / است:

[align=left]

$a /= 5;//short method

$a = $a / 5//long method?>[/align]

علامت =% معادل = و % است:

[align=left]

 

$a %= 5;//short method

$a = $a % 5//long method?>[/align]

و نهایتا علامت نقطه که در مطلب پیشین نیز درباره آن به طور مختصر گفتیم، برای متصل کردن دو مقدار رشته ای (متنی) استفاده می شود:
[align=left]

$a .= 'text';//short method

$a = $a . 'text'//long method

?>[/align] [size=medium]عملگرهای مقایسه (comparison operators) در php[/size]

 

 


حال که با علائم محاسباتی در php آشنا شدیم، نوبت به فراگیری اصول مقایسه ای است، اما اساسا مقایسه در برنامه نویسی چه فایده ای دارد؟! برای اینکه درک کلی و روشنی از مقایسه و فایده آن در php داشته باشید، آموزش را با مثالی ادامه می دهیم؛ فرض کنید تعدادی از کاربران ما عضو یک کشور خاص هستند (اطلاعات آنها در پایگاه داده ما موجود است)، حال می خواهیم به مفسر php بگوییم که اگر کشور کاربر برابر آن عبارت بود، او را در قسمت خاصی قرار دهد یا زبان را مناسب با آن کشور تنظیم نماید، امکان این کار با مقایسه کشور کاربر با عبارتی که ما مد نظر داریم فراهم می شود و به طور ساده خواهیم نوشت: (اگر کشور کاربر برابر عبارت x بود، زبان سیستم را y قرار بده و...)؛ این برابر بودن یا نبودن با علائم مقایسه ای انجام می شود.

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

[align=left]

$a = 5;

$b = 5;

 

$a == $b;

?>[/align]

در مثال بالا برابر بودن متغیر a را با b مقایسه کرده ایم که این مقایسه درست خواهد بود؛ چون مقدار هر دو متغیر 5 است (مقایسه را می توان برای مقادیر رشته ای (متنی) نیز انجام داد).برای مقایسه برابر نبودن دو طرف رابطه از علامت =! استفاده می کنیم:

[align=left]

$a = 5;

$b = 5;

 

$a != $b;

?>[/align]

 

بر این اساس، حاصل رابطه بالا درست نیست، چرا که مقدار هر دو متغیر 5 است و برابر هستند.

 

برای مقایسه کوچکتر بودن از علامت > استفاده می کنیم:

[align=left]

 

$a = 5;

$b = 8;

 

$a < $b;

?>[/align]

 

با توجه به مثال بالا، متغیر a از متغیر b کوچکتر خواهد بود.

 

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

[align=left]

 

$a = 5;

$b = 8;$a > $b;

 

?>[/align]

بر این ساس رابطه بالا صحیح نیست، چرا که متغیر a مقدارش 5 است و از متغیر b که مقدارش 8 است بزرگتر نیست.

 

برای مقایسه کوچکتر مساوی از علامت => استفاده می کنیم:

[align=left]

 

$a = 5;

$b = 8;

 

$a <= $b;

?>[/align]

 

بر اساس رابطه بالا، متغیر a از b کوچکتر است اما مساوی نیست، لذا این رابطه درست خواهد بود (کافی است یکی از شرایط مقایسه صحیح باشد تا کل آن صحیح (true) فرض شود).

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

 

[align=left]

 

$a = 5;

$b = 8;

 

$a >= $b;

?>[/align] با توجه به مثال بالا، متغیر a بزرگتر یا مساوی با b نیست، پس هیچ کدام از پارامترهای این مقایسه صحیح نیست (و مقدار false خواهد بود).


دستورات شرطی if و else در php

دستورات شرطی (Conditional Statment)، یکی از پرکاربردترین موارد در دنیای زبان های برنامه نویسی و از جمله در برنامه نویسی وب و php به شمار می روند، در یک تعریف ساده از دستورات شرطی، می توان گفت که با آنها وجود یا عدم شرطی را بررسی می کنیم و بر اساس مثبت یا منفی بودن پاسخ ارزیابی شرط، مطابق با خواست و نیازمان، کاری را انجام می دهیم؛ در دنیای واقعی نیز بارها شنیده ایم که مثلا گفته اند اگر خوب تمرین کنید، موفق می شوید یا اگر فلانی بیاید، به کوهنوردی خواهیم رفت و...، این نوع تعاریف در برنامه نویسی وب و به طور خاص در php با if و else و ترکیب آنها یعنی elseif به سیستم و در واقع به مفسر php تفهیم می شوند.

[size=large]دستور شرطی if در php[/size]

 

 

درک نحوه کارکرد دستور if چندان سخت نیست، با if وجود یا عدم شرطی را بررسی می کنیم، مثلا اگر متغیری داشته باشیم با نام age و مقادیرش 20 باشد، حال بخواهیم بررسی کنیم که آیا متغیر age برابر 20 است یا خیر، به صورت ساده می نویسیم: اگر (if) متغیر age برابر با 20 باشد (رابطه true باشد)، محاسبه بین {} را انجام بده.
[align=left]

$age = 20;

if($age == 20){

echo "کاربر گرامی سن شما 20 سال است!";

}

?>[/align]

بر اساس مثال بالا، مقدار متغیر age برابر 20 تعریف شده، پس بررسی رابطه if درست (true) خواهد بود و دستور بین {} اجرا خواهد شد، حال در مثال زیر بررسی رابطه if مقادیر نادرست (false) خواهد داشت، چرا که سن کاربر 20 سال است، اما در ارزیابی گفته ایم که اگر سن او 20 سال نبود، محاسبه را انجام بدهد.

[align=left]

$age = 20;

if($age != 20){

echo "کاربر گرامی سن شما 20 سال نیست!";

}

?>[/align]

همانطور که در بحث پیشین (عملگرهای محاسبه و مقایسه در php) گفتیم، علامت == یعنی دو طرف رابطه برابر باشد و علامت =! یعنی دو طرف رابطه برابر نباشد.

[size=large]دستور شرطی else در php[/size]

اکنون که با if آشنا شدیم، باید از خود بپرسیم اگر if درست (true) نشد آنوقت تکلیف چیست؟! یک برنامه نویس خوب باید حساب همه چیز را کرده باشد، این چیزی است که شکل پیشرفته آن را همان هوش مصنوعی می نامند، پس باید شرایط بعد از نادرست شدن رابطه if را هم تعریف کنیم، برای این کار از دستور شرطی else یا elseif استفاده می کنیم، ابتدا به else می پردازیم.

else در واقع جایگزینی برای if است، یعنی اگر رابطه if درست نباشد (false باشد)، آنگاه مقادیر بین {} در else اجرا می شود، به مثال زیر توجه کنید تا مسئله روشن شود.

[align=left]

 

$age = 20;

if($age != 20){

echo "کاربر گرامی سن شما 20 سال نیست!";

}

else{

echo "کاربر گرامی، به بخش 20 ساله ها خوش آمدید!!";

}

?>[/align]

 

 

به طور ساده، مثال بالا اینطور تفسیر می شود: در خط اول متغیر age برابر 20 تعریف شده است، آنگاه در دستور if اول، برابر نبودن age با 20 بررسی شده، اگر رابطه درست باشد (یعنی سن برابر 20 نباشد)، مقادیر بین {} در بررسی if اجرا می شود و نوبت به else نمی رسد، اما اگر سن برابر 20 سال باشد، پس رابطه if صحیح نیست (چون رابطه می گویید اگر age برابر 20 نباشد) و نوبت به اجرای دستور else است که پیام خوش آمد را برای کاربر 20 ساله نشان می دهد.

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

 

[align=left]

 

$country = "Iran";

$state = "PersianGulf";

 

if($country == "Iran" && $state == "PersianGulf"){

echo "کاربر گرامی شما از کشور $country و منطقه $state هستید!";

 

}

else{

 

echo "کاربر گرامی لطفا نام کشور و منطقه خود را وارد نمائید!";

}

 

?>[/align]

کافی است کد بالا را در لوکال هاست آزمایش کنید تا نتیجه را ببینید.

 

[size=large]دستور شرطی elseif در php[/size]

elseif ترکیب دیگری از if و else و در واقع بینابین آنها است، به فرض شاید بخواهیم قبل از خاتمه دادن به کدنویسی خود، چندین ارزیابی دیگر را نیز انجام دهیم، اینجا است که از elseif استفاده می کنیم، elseif با نادرست شدن رابطه if قبل از آن اجرا می شود و اگر مقدار آن false شود، مفسر php از آن صرفه نظر می کند و به ادامه کد می پردازد، مثال زیر روشن است.

 

[align=left]

 

$num = 1000;

$max = 2000;

 

if ($num > $max){

echo "متغیر num از max بزرگتر است!";

 

}

elseif($num == $max){

 

echo "متغیر num با max برابر است!";

}

 

else{

echo "متغیر num از max کوچکتر است!";

 

}

?>[/align]

 

همانطور که در کد بالا ملاحظه می کنید، بر اساس داده های تعریف شده، رابطه if و elseif نادرست خواهند بود و به ناچار بخش سوم یعنی else اجرا می شود، در مثال زیر کد بالا را تغییر داده ایم تا قسمت دوم یعنی elseif اجرا شود.

 

[align=left]

 

$num = 2000;

$max = 2000;

 

if ($num > $max){

echo "متغیر num از max بزرگتر است!";

 

}

elseif($num == $max){

 

echo "متغیر num با max برابر است!";

}

 

else{

echo "متغیر num از max کوچکتر است!";

 

}

?>[/align]

 

از elseif به هر تعداد که بخواهیم، بین if و else می توانیم استفاده کنیم، اما مفسر php به ترتیب، درست بودن رابطه آنها را بررسی و اگر یکی از آنها درست باشد، تنها آن را اجرا می کند


حلقه for و while در php

در مطالب قبلی از بخش آموزش مقدماتی php، تا حدود زیادی مسیرمان را به سمت یادگیری این زبان پرکاربرد در برنامه نویسی وب هموار کردیم، پس از آشنایی با متغیرها، عملگرهای محاسبه و مقایسه، دستورات شرطی if و else و نحوه کار با switch و case، این بار نوبت به آموزش حلقه های for و while در php است؛ از آنجایی که اصولا حلقه ها در زبان های برنامه نویسی و به طور خاص در برنامه نویسی به زبان php، کاربرد فراوان دارند، یادگیری و درک این بخش می تواند به روند پیشرفت آموزش، بسیار کمک کند، در ادامه خواهیم گفت که چرا و چگونه باید از آنها در کدنویسی خود استفاده کنیم.
[size=large]حلقه (Loop) چیست؟[/size]

 


در برنامه نویسی php (و شاید در اکثر زبان های برنامه نویسی)، از حلقه ها (Loops) برای گرفتن خروجی در یک دور تکرار، با مقادیر متفاوت استفاده می شود، البته این بحث بی شباهت با توابع نیست، ولی حلقه (Loop)، چند فرق اساسی با تابع (Function) دارد، از جمله اینکه در حلقه در هر دور، معمولا یک خروجی به مرورگر ارسال می شود، در حالی که تابع در هر بار فراخوانی معمولا تنها یک خروجی ارسال می کند (مگر اینکه درون تابع از حلقه استفاده شود)، از طرفی حلقه ها متاثر از شرایط بیرون و درون خود رفتار می کنند، اما توابع تنها ممکن است چند ورودی از بیرون دریافت کنند، ولی در نهایت پردازش را با توجه به الگوی خود انجام می دهند؛ به هر صورت از بحث تئوری که بگذریم، در یک مثال ساده کاربرد حلقه در php مثل این است که به فرض به جای اینکه 10 بار یک عدد را به فرض با اعداد 1 تا 10 جمع کنیم (یعنی برای هر بار یک کد بنویسیم و خروجی بدهیم)، در یک حلقه، ده دور عمل جمع را با مقادیر و خروجی متفاوت تکرار می کنیم، یا تا زمانی که حاصل جمع ما به 10 نرسیده است، تکرار را در حلقه ادامه می دهیم.
[size=large]انواع حلقه در php[/size]

چند نوع حلقه در php وجود دارد که با به حساب آوردن همه آنها، می توان تعداد حلقه در php را در چهار دسته خلاصه کرد؛ حلقه while و زیر مجموعه آن یعنی do while، حلقه for وهم خانواده آن یعنی foreach، حلقه while یک دور حلقه را تا زمانی که شرطی (condition) درست (true) باشد، تکرار می کند، زیر مجموعه آن یعنی do while نیز ساختاری شبیه به while دارد، با این تفاوت که ابتدا، دور حلقه do یک بار اجرا می شود و سپس شرط while بررسی می گردد، حلقه for برعکس while، درون خود شرطی را بررسی می کند و تا زمانی که شرط درست باشد، تکرار را ادامه می دهد، هم خانواده آن یعنی foreach نیز برای کار با آرایه ای از اطلاعات و متغیرها کاربرد دارد، در حالت معمول استفاده از for کفایت می کند، اما زمانی که می خواهید به فرض اطلاعات را از پایگاه داده خروجی بگیرید یا با یک فرم با قابلیت انتخاب فیلدهای چندگانه کار کنید، باید حتما از foreach استفاده نمائید، چرا که داده های شما به صورت آریه ای از اطلاعات هستند و باید با کلید و مقدار، جداگانه و تک به تک مقایسه و خروجی داده شوند، در ادامه به طور مفصل تر در مورد کاربرد حلقه ها خواهیم گفت.
[size=large]حلقه while در php[/size]

ساختار حلقه while در php به اینصورت است که با بررسی یک شرط، تا هر زمان که مقدار برگردانده شده توسط آن درست (true) باشد، مقادیر داخل {} اجرا می شود، در مثال ساده زیر، یک حلقه را تا زمانی که تعداد کاربران به 5 نرسیده ادامه داده ایم و خروجی فرضی از آن گرفته ایم.

[align=left]
//مقادیر پیش فرض برای متغیر
$users = 5;
//حلقه while
while ($users > 0){
echo "کاربر شماره $users
";
$users--;
}
?>[/align]


[align=left]کاربر شماره 5
کاربر شماره 4
کاربر شماره 3
کاربر شماره 2
کاربر شماره 1[/align]


توضیح:
- ابتدا برای متغیر فرضی users یک مقدار پیش فرض قرار می دهیم تا بعدا در حلقه while یک شرط برای آن تعیین کنیم.
- سپس در قسمت مربوط به حلقه while، بررسی می کنیم، تا زمانی که مقادیر متغیر users بزرگتر از صفر باشد، کد داخل {} اجرا شود.
- درون حلقه یک دستور خروجی echo نوشته ایم که در هر دور (loop)، مقادیر را چاپ می کند و در قسمت آخر، در هر دور حلقه یک واحد از متغیر users کاسته می شود و این کار تا زمانی که مقادیر این متغیر بزرگتر از صفر، یعنی یک است، ادامه می یابد.
- دقت کنید، چون متغیر فرضی ما در این مثال یک عدد بود، می توانیم بر روی آن اعمال ریاضی مثل جمع، تفریق و... را انجام دهیم، در برنامه نویسی سطح بالاتر، موقعیت هایی پیش می آید که انواع متفاوتی از داده ها را باید با توجه به نوع آنها بررسی کنیم.
[size=large]مثالی دیگر از کاربرد حلقه while در php[/size]



[align=left] //مقادیر پیش فرض برای متغیر
$users = 5;
$admin = 1;
//حلقه while
while ($users > 0){
//حلقه تو در تو
while($admin > 0){
echo "مدیر سایت، خوش آمدید
";
$admin--;
}
echo "کاربر شماره $users خوش آمدید
";
$users--;
}
?>[/align]


خروجی کد بالا به صورت زیر خواهد بود.

[align=left]
مدیر سایت، خوش آمدید
کاربر شماره 5 خوش آمدید
کاربر شماره 4 خوش آمدید
کاربر شماره 3 خوش آمدید
کاربر شماره 2 خوش آمدید
کاربر شماره 1 خوش آمدید[/align]


توضیح:
- مثال بالا، نحوه استفاده از یک حلقه while درون حلقه ای دیگر به صورت تو در تو را نشان می دهد.
- فرمول و ساختار حلقه با کمی تامل قابل درک است، تنها چیزی که اینجا اضافه کرده ایم، متغیر admin و حلقه مربوط به آن است که در درون حلقه اصلی اجرا می شود.
- استفاده از این شیوه، یعنی حلقه های تو در تو در برنامه نویسی پیشرفته تر با php، کاربرد های خاص خودش را دارد.
[size=large]حلقه do while در php[/size]

گاهی مواقع در دنیای برنامه نویسی وب با php، پیش می آید که بخواهیم یک حلقه را ابتدا یک بار خروجی دهیم (چه شرطی درست باشد و چه نباشد)، سپس بررسی کنیم که آیا شرایط ادامه حلقه مهیا است یا خیر، مفسر php بدین منظور از ساختار do while که بسیار شبیه while معمولی است بهره می گیرد، در do while دور اول حلقه، بدون هیچ پیش شرطی اجراء می شود، اما دورهای بعد مثل این است که به روال عادی حلقه while بازگشت کنیم، مثال زیر روشن است.


align=left] //مقادیر پیش فرض برای متغیر
$users = 0;
do{
echo "کاربر شماره $users خوش آمدید
";
$users--;
}
//حلقه while
while ($users > 0);
?>[/align]


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


[align=left]کاربر شماره 0 خوش آمدید[/align]


[size=large]حلقه for در php[/size]

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


[align=left] //حلقه for
for ($users=1; $users <= 3; $users++){
echo "کاربر شماره $users
";
}
?>[/align]

[align=left]کاربر شماره 1
کاربر شماره 2
کاربر شماره 3[/align]

 


توضیح:
- شیوه نگارش یا syntax حلقه for با while کمی متفاوت است، حلقه for در سه عبارت (expression)، ساختار اصلی خود را شکل می دهد، عبارت اول، همان مقادیر پیش فرض برای یک متغیر است، عبارت دوم، تعیین شرط برای خاتمه حلقه است و عبارت آخر، تغییرات مقادیر متغیر در هر دور حلقه است.
- عبارت users در مثال بالا، کاملا فرضی و انتخابی است، معمولا از عبارت i بدین منظور استفاده می کنند.
- دقت کنید که در برنامه نویسی، حلقه هایی که می نویسید، باید در یک مرحله ای به پایان برسند، اگر بررسی شرط حلقه همیشه درست (true) باشد، دور تکرار آن تا بی نهایت ادامه می یابد و این سبب ایجاد یک باگ یا نقض بزرگ در برنامه شما و نهایتا باعث از کار افتادن مرورگر کاربر یا سرور خواهد شد.
در مثال زیر، یک اشتباه عمدی کرده ایم و حلقه را تا بی نهایت ادامه داده ایم، با کمی دقت متوجه خواهید شد.

[align=left]
//حلقه for تکرار تا بی نهایت!
for ($i=0; $i >= 0; $i++){
echo "کاربر شماره $i
";
}
?>[/align]


[size=large]حلقه foreach در php[/size]

نوع دیگری از حلقه های هم خانواده با for با نام foreach برای کار با مقادیر آرایه ها کاربرد دارد، در برنامه نویسی وب، برخی ویژگی ها، ناگزیر به صورت آریه ای از اطلاعات قابل کنترل و پردازش هستند، به عنوان مثال، وقتی در فرم های html، یک فیلد با قابلیت انتخاب چند مقدار را ارسال می کنید، باید برای هر مقدار، یک بار پردازش در سرور انجام شود، تا تفکیک داده ها از هم میسر گردد، این کار در php با foreach انجام می شود، foreach در هر دور حلقه، یک کلید و مقدار از آرایه را پردازش می کند تا زمانی که شرایط ادامه دادن دور حلقه، درست یا true باشد، به مثال زیر توجه کنید.



[align=left]
$array = array(1=>'Arash', 2=>'Soraya', 3=>'Maryam', 4=>'Sadegh');
foreach ($array as $user) {
$user = "$user به بخش آموزش php، خوش آمدید
";
echo $user;
}
?>[/align]


خروجی مثال بالا به صورت زیر خواهد بود.


[align=left]Arash به بخش آموزش php، خوش آمدید
Soraya به بخش آموزش php، خوش آمدید
Maryam به بخش آموزش php، خوش آمدید
Sadegh به بخش آموزش php، خوش آمدید[/align]


توضیح:
- حلقه foreach از دو شیوه نگارش (syntax) پشتیبانی می کند، هم به صورت:


[align=left]$array as $user[/align]

و هم به صورت:

[align=left]$array $key => $user[/align]


- هر مقدار از آرایه ها، در هر دور حلقه، به عنوان ورودی دریافت می شوند و پس از اعمال پردازش تعیین شده، نوبت به عنصر بعدی می رسد، در مثال بالا، آرایه ما دارای چهار مقدار است، پس دور حلقه foreach برای هر کدام، یک بار اجرا خواهد شد (for به معنی برای و each به معنی هر).
- درک صحیح نحوه عملکرد حلقه foreach، نیازمند آشنایی با مبحث آرایه ها در php است، لذا در اینجا به همین مقدار بسنده می کنیم.

 


کار با switch و case در php

طبق روالِ پدیدآورندگان زبان های برنامه نویسی از جمله php، همیشه قوانین خاصی برای هر زبان تعریف می شود (که به آن syntax یا دستورالعمل می گویند) و کد نوشته شده توسط کاربران طبق آن تفسیر شده، خروجی داده می شود یا عملیات خاصی صورت می گیرد، به جرات می توان گفت خیلی از زبان های برنامه نویسی از بسیاری جهات مشابه هم هستند و تفاوتهای آنها بیشتر در جزئیات و شیوه نگارش دستوراتشان است، با ذکر این مقدمه کوتاه می خواهیم به ادامه آموزش مقدماتی php با بحث switch و case بپردازیم، با این امید که اطلاعات ارائه شده مخصوصا برای دوستانی که تازه شروع به یادگیری php کرده اند یا علاقمند هستند مباحث را دنبال کنند، مفید واقع شود.
کاربرد دستور switch در php چیست؟


همانطور که از نام switch (به معنی تعویض کردن) پیداست، از آن برای انتخاب چند مورد (case) مختلف با توجه به مقادیری که مقایسه می شوند، استفاده می کنند، البته گاهی به جای switch و case از if و elseif هم استفاده می کنند، ولی فلسفه پیدایش این دو از هم جدا است و در کدنویسی های پیشرفته کارکردی متمایز دارند؛ اگر بخواهیم نحوه کاربرد switch و case در php را با یک مثال توضیح دهیم، می توان کتابخانه ای را فرض کرد که با توجه به درخواست شما (Statement یا دستور شما) از بین کتابهای (case های) موجود، یک مورد را انتخاب (switch) کرده و به شما تحویل می دهد.
[size=large]شیوه نگارش یا syntax دستور switch در php[/size]

شیوه نگارش یا syntax دستور switch در php بی شباهت به جاوا اسکریپت نیست، مانند جاوا اسکریپت یک مقدار برای مقایسه به switch اختصاص می یابد و از بین case های موجود یک مورد یا بعضا بیشتر انتخاب می شود، به مثال زیر توجه کنید.


[align=left] $statement = "Iran";
switch ($statement){
case "Iran":
echo "کشور کاربر: $statement";
break;
case "Other":
echo "user country: $statement";
break;
}
?>[/align]


توضیح:
- در مثال بالا ابتدا متغیر فرضی statement برابر Iran قرار گرفته است.
- سپس در دستور switch مقادیر متغیر statement به عنوان یکی از case ها مقایسه می شود و هر کدام که مقدار آن برابر بود، به خروجی داده می شود.
- قسمت مربوط به break با true شدن هر case، باعث پایان جستجوی switch در موارد خود می شود، در واقع وقتی switch مقادیری مشابه متغیر statement پیدا می کند، case آن true شده و قسمت مربوط به break به جستجو خاتمه می دهد.
- طبق کد بالا خروجی می شود: کشور کاربر: Iran
[size=large]استفاده از default case در دستور switch[/size]

حال با توجه به مثال، فرض کنید هیچ کدام از case های ما با مقادیر متغیر statement همخوانی نداشته باشند، ممکن است در این صورت بخواهیم به کاربر پیامی نشان دهیم یا به او بگوییم که کشور خود را در فیلد مربوط وارد کند و یا هر چیزی که نیاز به یک مقدار پیش فرض دارد؛ برای این منظور از ظرفیت دیگری در switch به نام default case یا مورد پیش فرض استفاده می کنیم، به مثال زیر توجه کنید.


[align=left] $statement = "unknown";
switch ($statement){
case "Iran":
echo "کشور کاربر: $statement";
break;
case "Other":
echo "user country: $statement";
break;
default:
echo "please fill out your country field";
}
?>[/align]


توضیح:
- با توجه به مثال بالا، چون مقدار متغیر statement برابر unknown است و هیچ کدام از case ها چنین مقداری ندارند، پس قسمت مربوط به default اجراء می شود.
- دقت کنید که php بیشتر یک زبان داینامیک است تا استاتیک، یعنی داده ها و خروجی ها با توجه به شرایط و مقادیر متفاوت، مختلف خواهند بود، در مثال ها صرفا جهت کمک به آموزش مطلب، از متغیر های استاتیک استفاده شده است، لذا این مقادیر می توانند مثلا با توجه به IP کاربر یا نام او و یا هرآنچه که به عنوان یک متغیر می تواند تعریف شود، قابل تغییر باشد که این بستگی به نیاز و هدف شما دارد

 

 


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:








تاریخ: یک شنبه 4 فروردين 1392برچسب:آشنایی,کار با متغیر ها, Variables, php, for,while,switch,case,if,if else,
ارسال توسط هادی احمدی

آرشیو مطالب
پيوند هاي روزانه
امکانات جانبی

آمار وب سایت:  

بازدید امروز : 214
بازدید دیروز : 4
بازدید هفته : 486
بازدید ماه : 798
بازدید کل : 162741
تعداد مطالب : 736
تعداد نظرات : 23
تعداد آنلاین : 1

Google

در اين وبلاگ
در كل اينترنت
 <-PostTitle-> <-PostContent-> 1 <-PostLink->