loading...
اولین سایت اموزش در ایران
سینا عزیزی بازدید : 11 شنبه 04 آذر 1391 نظرات (0)

آموزش php - قسمت اول - نصب Xampp


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

Wink در اولین مرحله خوش آمدگویی داریم پس Next رو کلیک می کنیم

مسیر نصب رو مشخص کنید

Choose Install Location

در صورتی که میخواهید Apache و MySQL به عنوان سرویس های ویندوز نصب بشند گزینه های Install Apache as Service و Install MySQL as Service رو تیک بزنید! انتخاب این گزینه ها اختیاریه. تنها نکته ای که هست اینه که در صورتیکه IIS رو سیستم تون نصبه و Apache رو نصب کنید باید حتما پورت IIS یا Apache رو تغییر بدید وگرنه Apache پیغام خطای Port Busy بهتون میده! بعد روش تغییر پروت IIS و Apache رو میبینیم. خوب تا اینجا کار تقریبا تمومه فقط باید دکمه Install رو بزنید.

Xampp Options

حالا اگه به مشکل خاصی نخورده باشید کار نصب تموم شده!

اینم کنترل پنل Xampp هستش که با اون میتونید Apache و MySQL رو Start یا Stop کنید! یادتون باشه اگر تیک Install as Service رو نزده باشید باید هر بار که می خواهید روی وب سایتتون کار کنید Apache و MySQL فعال باشند یعنی باید دکمه Start کنارشون رو کلیک کنید (Runningرو کنار Apache و MySQL نمایش بده)

Xampp Control Panel

حالا مرورگرتون را باز کنید و در آدرس بار مرورگر تایپ کنید localhost یا 127.0.0.1 هر کدومشو رو که بنویسید فرقی نمی کنه! اگر همه چیز خوب پیش رفته باشه باید صفحه زیر رو ببینید که باید تویه این صفحه زبان صفحات Xampp رو انتخاب کنید پس روی English کلیک کنید!

Xampp Splash Screen

حالا باید صفحه زیر براتون نمایش داده بشه! اگه این صفحه نمایش داده شد یعنی همه چی خوب پیش رفته اگه که نه تو بخش انجمن ها مطرح کنید تا بهتون کمک کنیم مشکل حل شه!

Xampp Install Success

آموزش php - قسمت دوم - اولین برنامه

 

 


 


پی اچ پی php یکی از قویترین زبان های برنامه نویسی وب برای طراحی صفحات پویا هستش که معمولا روی وب سرور Apache اجرا میشه! php مخفف PHP: Hypertext Preprocessor هست و کدهای اون قابلیت قرارگرفتن در میان کدهای html رو دارند که این یک ویژگی مهم به حساب میاد. زبان php بسیار شبیه زبان های C,Java و Perl هست. هدف php ایجاد صفحات پویا توسط برنامه نویسان در سریع ترین زمان ممکن بیان شد. این زبان تعداد زیادی از پایگاه های داده مثل MySQL ، Oracle و SQL Server رو پشتیبانی میکنه اما اغلب توسعه دهندگان تریجح میدند که از MySQL به عنوان بانک اطلاعاتی صفحاتشون استفاده کنند ( MySQL یک پایگاه داده مناسب برای بیشتر سیستم های کوچک و بزرگ هست که امکان استفاده از اون به صورت رایگان وجود داره). امروزه وب سایت های زیادی رو میتونید ببینید که با php طراحی شده اند.

Cool حالا چرا php؟؟؟

دلایل استفاده از php رو در زیر ببینید:
1. مفسر php روی سیستم های مختلفی قابل اجراست مثل Linux یا Windows
2. رویه بیشتر سرورها قابل اجراست مثل Apache و IIS
3. دانلود و استفاده ازش مجانی هستش.
4.به راحتی قابل یادگیریه.

همانطوری که تویه قسمت قبل گفتم برای شروع کار و نوشتن اولین برنامه ، باید Apache و php رویه سیستمتون نصب باشند و برای این کار استفاده از پکیج Xampp رو پیشنهاد کردم!

برای اینکه برنامه ها و سایت های php مون رو اجرا شوند باید اونها رو حتما تویه مسیر C:\xampp\htdocs\xampp ذخیره کنیم.
یعنی اول باید وارد پوشه محلی که xampp نصبه بشیم مثلا c:\xampp بعد باید پوشه htdocs و بعد هم پوشه xampp رو باز کنیم!

Suggestion پیشنهادها

اول: از این پوشه آخر یک میانبر رویه desktop بسازید تا بعد از این راحت تر بتونیم پیداش کنیم! - یعنی یک میانبر به مسیر C:\xampp\htdocs\xampp
دوم: تویه این پوشه برای هر وب سایت یا برنامه ای که می نویسید یک پوشه Folder ایجاد کنید که مدیریت فایل هاتون هم راحت تر بشه!

هر برنامه یا وب سایتی که با php نوشته میشه معمولا از یک یا تعدادی فایل با پسوند php تشکیل میشه برای مثال اسمش میتونه به شکل safehAvval.php یا مثلا index.php و ...

نوشتن اولین برنامه
تویه مسیری که گفتم یه پوشه به اسم myWebSite ایجاد کنید و بعد از این فایل ها و صفحاتی که برای تمرین یا مثال ها باهاشون کار میکنید رو تویه این پوشه - که مطمئنم تویه این مسیر ساختید - ذخیره کنید. یعنی باید به شکل روبرو باشه C:\xampp\htdocs\xampp\myWebSite
حالا تویه پوشه myWebSiteیک فایل به نام index.php ایجاد کنید!

Foot in mouthچه جوری آخه!!؟؟

برنامه notepad++ یا notepad ویندوز رو اجرا کنید!
از منوی فایل گزینه New رو انتخاب کنید تا یه document جدید واستون بسازه داخلش دستورات زیر رو بنویسید: شماره خط ها رو پاک کنیدها D:

1.<?php
2. echo 'Hello World! I will learn php as soon as possible...';
3.?>

بعد اون رو تویه مسیر C:\xampp\htdocs\xampp\myWebSite به نام index.php ذخیره کنید! حالا مرورگرتون رو اجرا کنید - سعی کنید از Firefox3 استفاده کنید - و آدرس localhost/xampp/myWebSite یا localhost/xampp/myWebSite/index.php رو تایپ کنید - یادتون نره که باید Apache و MySQL رو از کنترل پانل Xampp استارت Start کرده باشید - حالا اگر همه چیز رو دقیق انجام داده باشید باید تویه مرورگر Hello World! I will learn php as soon as possible... نمایش داده بشه!

توجه کنید که دستورات php باید بین <? و php?> قرار بگیرن البته میتونید به جایه php?> از ?> تنها هم استفاده کنید اما بهتر اینه که از شکل اول php?> استفاده کنید.

Cool گفتی که کدهای php میتونن بین کدهای html قرار بگیرن! چه جوری؟

تویه مثال آخر میتونید ببینید که چطور این کار انجام میشه! حواستون حتما هستش که هر جا از دستورات php استفاده کردم اونها رو بین <? و php?> قرار دادم!

1.<html>
2. <head>
3. <title> <?php echo 'In Onvane Safeye Dovvome!!!'; ?> </title>
4. </head>
5. <body>
6. <?php echo 'Content of my <b><i>Second</i></b> Example...'; ?>
7. </body>
8.</html>

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


ادامه » آموزش php - قسمت سوم - دستور زبان و کار با متغیرها

آموزش php - قسمت سوم - دستور زبان و کار با متغیرها

 


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

1.<?php
2. $counter = 1;
3. echo 'The counter is '.$counter; // meghdar counter namayesh dade mishe

4.
/* in ghesmat az code hazf shode
5. counter += 10
;
6. echo 'This counter is'.$counter;
*/
7.?>

بعد از اینکه این مثال رو اجرا کردید میبینید که خروجی اون به شکل The counter is 1 هست! حالا اجازه بدید با دقت بیشتری به کدش توجه کنیم:

- با خطوط 1 و 6 که آشنا هستید و میدونید برای این یک کد php اجرا بشه باید بین <? و php?> قرار بگیره!
- در زبان php بعد از اتمام هر دستور باید علامت Semicolon ";" رو بنویسید ، فراموش کردنش جزو خطاهای بزرگ یه برنامه نویس محسوب میشه ها D:
- از علامت // برای نوشتن توضیحات comment بین خطوط برنامه استفاده می کنیم. توضیحات برای برنامه نویس هست و مفسر هر وقت بهشون میرسه بدون اینکه اجراشون کنه ازشون رد میشه. در هنگام نوشتن برنامه هاتون حتما سعی کنید جاهاییکه عملکرد کد واضح نیست - اگه بعدا ببیندش متوجه نحوه کارکردش نمیشید - از توضیحات استفاده کنید تا بعدا که به سراغ کدهاتون میایید بتونید ازش سر در بیارید! البته توضیحات رو میشه بین علامت های /* */ قرار بدید!

Foot in mouth آخرش واسه ی توضیحات از کدوم استفاده کنم!!!؟؟

اگر توضیحات شما تویه یک خط جا میشن بهتره که از // استفاده کنید چون از // فقط برای توضیحات یک خطی میشه استفاده کرد.
اگر توضیحات شما باید تویه چند خط نوشته بشه باید همه ی اون خطوط رو بین /* */ قرار بدید. اگه خوب مثال بالا توجه کنید میبینید که خطوط 4 و 5 و 6 اجرا نمیشن با اینکه تویه خطوط 5 و 6 دستورات برنامه نویسی دارن!

- counter یه متغیره که ازش برای نگهداری عدد یک استفاده کردیم. قیل از نام هر متغیر باید $ قرار بگیره تا مفسر بفهمه که اون یک متغیر هستش! متغیرها رو مثل یک ظرف فرض کنید که بسته به نوع اونها میتونید داخلش عدد ، رشته و ... بریزید! البته باید توجه کنید که متغیرهای php نوعشون توسط مفسر تعیین میشه بسته به چیزی که داخلشون میریزید!

Foot in mouth بازم من گیج شدم یعنی چی بسته به چیزی که داخلشون میریزید نوعشون تعیین میشه؟؟؟؟

در خیلی از زبان های برنامه نویسی شما باید قبل از اینکه از یک متغیر استفاده کنید باید اون رو تعریف کنید و نوع اون متغیر رو هم مشخص کنید مثلا مشخص کنید عدد قرار داخلش قرار بگیره یا رشته ای از حروف و بعد هم باید مشخص کنید که اندازه اون عدد یا رشته حداکثر چقدره! به مثال زیر که به زبان ++C نوشته شده دقت کنید:

1.#include <iostream>
2.#
include <string>
3.using namespace std;
4.int main()
5.{
6. int age;
7. float grade;
8. string name;
9. age = 20;
10. grade = 19.19;
11. name = "Meysam";
12. cout << name << " " << age << " " << grade << endl;
13. return 0;
14.}

تویه خطوط 6 و 7 و 8 متغیرهای age ، grade و name رو تعریف کردیم ، باید دقت کنید که تویه age فقط میتونید عدد بریزید و تویه name فقط میتونید رشته های حروفی قرار بدید! اگر این متغیرها رو تعریف نمی کردیم یا به جای هم به کار می بردیم کامپایلر ++C پیغام خطا میداد! ولی تویه php هرجا که خواستید از یک متغیر استفاده کنید فقط باید یه اسم واسش انتخاب کنید و ازش استفاده کنید! تویه مثال یک میبینید که بدون اینکه متغیر counter رو تعریف کنیم و نوع اونو مشخص کنیم ازش استفاده کردیم! نوشتن $ قبل از اسم متغیر اجباریه و این بارهم فراموش کردنش جزو خطاهای بزرگ یه برنامه نویس محسوب میشه D:
زمان انتخاب اسم برای متغیرها نکات زیر رو با یاد داشته باشید و رعایت کنید:
- اسمی که انتخاب می کنید سعی کنید معنی داشته باشه مثلا برای شمارنده از counter$ برای مجموع یکسری عدد از sum$ یا برای نام دانشجویان از stdNames$ و ... استفاده کنید!
- اسم هر متغیر باید با حروف A-Z یا a-z یا _ شروع شود
- اسم یک متغیر نمی تواند کاراکتری به غیر از حروف ، اعداد و _ داشته باشد. استفاده از dot # % و ... در اسم متغیر مجاز نیست D:
- در اسم متغیر نباید از فاصله Space استفاده بشه! std Name غلطه و باید به جای اون مثلا بنویسیم std_Name

به عنوان آخرین نکته یادتون باشه که php یک زبان case sensitive هست یعنی بین حروف کوچک و بزرگ فرق قائل میشه! naMe$ و Name$ دو متغیر مستقل اند!

آموزش php - قسمت چهارم - عملگرها

 


در این بخش عملگرهای زبان پی اچ پی رو بررسی می کنیم!

Foot in mouthعملگر چیه؟؟!!

عملگرها علائمی هستند که با استفاده از اونا میتونید عملیات خاصی رو رویه مقادیر انجام بدید مثل اعمال منطقی و ریاضی! مثلا + برای جمع کردن دو عدد استفاده میشه و یا < برای مقایسه دو مقدار به کار برده میشه. لیست عملگرهای زبان php و توضیح در مورد هر کدومشون رو در ادامه میبینید!

دسته اول عملگرهای ریاضی هستند:

+ مجموع 2 + 3 = 5
- تفریق 3 - 5 = 2
* ضرب 5 * 4 = 20
/ تقسیم 5 / 20 = 4
% باقیمانده تقسیم
3 % 20 = 2
++ یکی به عدد اضافه میکنه ;++i معادل با 1 + i = i
-- یکی از عدد کم میکنه

;--j معادل با 1 - j = j

عملگر انتصاب =
این عملگر نیاز به کمی توضیح داره واسه دوستانی که دارن تازه برنامه نویسی یاد میگیرن. وظیفه این عملگر اینه که همیشه نتیجه نهایی مقدار سمت راست عبارت رو در متغیر سمت چپ ذخیره میکنه! مثلا با اجرای دستور ;5+9=c مقدار 14 در متغیر c ذخیره میشه. مهمترین نکته در مورد این عملگر اینه که سمت چپش باید همیشه یه متغیر بیاد!

از ترکیب عملگر انتصاب با عملگرهای ریاضی بالا عملگرهای ترکیبی به دست میان. به عنوان مثال عبارت 3=+i معادل 3 + i = i هست در مورد سایر عملگرهای ترکیبی هم این موضوع درسته!

=+ به اندازه متغیر سمت راست به متغیر سمت چپ اضافه میکنه 3=+i
=- ...کم میکنه j-=k
=* ...ضرب میکنه 2=*m
=/ ...تقسیم میکنه 12=/i
=% باقیمانده عبارت را محاسبه و در متغیر سمت چپ ذخیره میکنه 7=%k

عملگرهای مقایسه ای همونطوری که از اسمشون پیداست برای مقایسه دو مقدار به کار برده میشن و نتیجه ای که بر می گردونند از نوع درست یا غلط است! مثلا نتیجه عبارت 3 > 2 درست و نتیجه عبارت 3 < 2 غلط هست!

== بررسی تساوی 3==3 درست
=! بررسی نابرابری 3=!3 غلط
> کوچکتر 2>3 غلط
< بزرگتر 8<7 غلط
=< کوچکتر مساوی 8=<9 درست
=> بزرگتر مساوی 6=>5 درست

البته نوع دیگه ای از عملگرها هم وجود دارن که به اونها عملگرهای منطقی میگن! بیشترین کاربرد این عملگرها برای ترکیب روابط در دستورات شرطی هستش!

&& and و این عملگر تنها در صورتی مقدار درست بر میگردونه که همه عبارتها درست باشند (8=<9) && (6=>5) درست
|| or یا برای گرفتن نتیجه درست از این عملگر کافیه یکی از عبارت ها مقدار درست داشته باشند (8=9) || (6=>5) درست
! دروغگو not اگر نتیجه عبارت درست باشه اون رو غلط و اگر نتیجه غلط باشه اون رو درست اعلام میشکنه (3==3)! غلط

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

آموزش php - قسمت پنجم - دستورات شرطی و انتخابی

 


 


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

در زبان php شکل کلی دستور شرطی به صورت زیر هستش:

1.if (ebarate Sharti)
2. dastoori ke agar shart bargharar bashe ejra mishe;
3.else
4. dastoori ke agar shat bargharar Nabashe ejra mishe;

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

1.if (ebarate Sharti)
2. dastoori ke agar shart bargharar bashe ejra mishe;

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

if ($userType == 'admin')
{
showAdminCtrlPanel();
echo 'Welcome to your control panel...';
}
else
//show error message.

اگه خوب به این مثال دقت کنید می بینید که اگر مجبور باشیم چند دستور رو داخل بلوک شرطی قرار بدیم باید از آکولاد {} استفاده کنیم و مجموعه دستورات رو داخل آکولادها قرار بدیم! حالا فرض کنید ما چند گروه کاربر دیگه هم داریم که باید برای هر کدوم پیغام و صفحه متمایزی رو نشون بدیم! مثلا گروه های کاربریمون عبارتند از admin,user,editor,programmer در این حالت باید دستورات شرطی رو باهم ترکیب کنیم! بوسیله elseif این کار ممکن میشه:

if ($userType == 'admin')
{
showAdminCtrlPanel();
echo 'Welcome to your control panel...';
}
elseif($userType == 'user')
//show user control panel
elseif($userType == 'editor')
//show editors page
elseif($userType == 'programmer')
//show development panel
else
//show error message.

میتونیم به هر تعداد که بخواهیم این کار رو تکرار کنیم و از elseif استفاده کنیم. در هر کدوم از بلوک های شرطی هم باید در صورتی که چندتا دستور داریم از آکولاد استفاده کنیم! حالا فرض کنید تعداد این شرط ها خیلی بیشتر بشه که در این صورت استفاده از if و elseif زیاد معقول به نظر نمیاد اینجاست که باید از نوع دیگه ای از دستورات شرطی (یا بهتره بگیم انتخابی) بهره ببریم! دستور switch در حالتی که تعداد if ها زیاد باشه خیلی به کار میاد. شکل کلی این دستور رو در ادامه می بینید:

switch($choice)
{
case halateAvval: ;
break;
case halateDovvom: ;
break;
case halateSevvom: ;
break;
.
.
.
default: ;
break;
}

دستور switch یه مقدار توضیح میخواد:
اول اینکه switch یک متغیر به عنوان ورودی میگیره و ما مقادیر مختلف اون رو بررسی می کنیم.
دوم اینکه هر کدوم از مقادیر رو جلوی عبارت case می نویسیم.
سوم اینکه بعد از تمام شدن هر بلوک از دستورات برای یک مقدار خاص ، باید از ;break استفاده کنیم.
چهارم هم اینکه deafult حالت پیش فرض رو مشخص میکنه یعنی وقتی که متغیرمون هیچ کدوم از مقادیر مورد بررسی رو نداشته باشه.

در پایان این بخش هم مثال گروه های کاربری رو با switch بازنویسی میکنیم:

switch($userType)
{
case 'admin':
showAdminCtrlPanel();
echo 'Welcome to your control panel...';
break;

case 'user':
//show user control panel
break;

case 'editor':
//show editors page

break
;

case 'programmer':
//show development panel
break;

default:
//show error message.
break;
}

می بینید که کد ساده تر و خواناتری داریم که در موارد مشابه کارمون رو ساده میکنه!

آموزش php - قسمت ششم - حلقه های تکرار

 


حلقه های تکرار هم جزیی اساسی از هر زبان برنامه سازی به حساب میان! در زبان php چهار نوع حلقه داریم که بر حسب نیاز از اونها استفاده میکنیم. حلقه ها معمولا برای انجام کارهای تکراری مورد استفاده قرار میگیرن مثلا برای خوندن تعداد رکورد از بانک اطلاعاتی یا هر کار تکراری که خودتون در نظر بگیرید.

کارمون رو با حلقه for شروع میکنیم این حلقه ساختاری به صورت روبرو داره:

for(A ; B ; C)
dastori ke bayad tekrar beshe ;

به محل قرارگیری سمی کولن ها ; خوب توجه کنید ضمنا یاد آور میشم که اگه چند تا دستور دارید یا اصطلاحا یک بلوک تکرار دارید باید مجموعه دستورات رو داخل آکولاد بنویسید. اما توضیح اینکه در هر بخش باید چی بنویسیم :
در قسمت A همیشه متغیر رو مقداردهی اولیه میکنیم. (مقدار اولیه متغیر)
در قسمت B شرطی مینویسیم که تا زمانیکه این شرط برقراره حلقه تکرار میشه ، برای توقف حلقه شرط باید نادرست (false) باشه.
در قسمت C باید مشخص کنیم که در هر بار اجرای حلقه مقدار متغیر حلقه چطوری تغییر میکنه!

Foot in mouth من C رو نفهمیدم؟؟؟؟!!!

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

for($i=0 ; $i <=9 ; $i++)
echo $i.'<br />';

مثال بالا اعداد 0 تا 9 رو رویه صفحه نمایش میده. فکر کنم دیگه منظورم رو فهمیده باشید.
0=i$ مقدار صفر به عنوان اولین مقدار متغیر i$ در نظر گرفته میشه.
9=>i$ هم شرطی هست که ازش صحبت کردیم یعنی تا زمانیکه مقدار متغیر حلقمون که اینجا i$ هستش کوچکتر از 9 هست حلقه به کارش ادامه میده.
++i$ هم در هربار تکرار حلقه یکی به مقدار متغیر حلقه اضافه میکنه ، با عملگر ++ هم که آشنا هستیم و به یاد داریم معادل 1 + i = $i$ هستش!

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

نوع دوم حلقه while هست!! اگر وارد این حلقه بشیم تا زمانیکه شرط تکرار برقراره به کار خودش ادامه میده.

Wink پس ممکنه وارد این حلقه نشیم!!!

کاملا درسته. وقتیکه php برای اولین به این حلقه می رسه اگر شرط برقرار نباشه اصلا وارد حلقه نمیشه. شکل کلی این دستور به صورت زیر هست:

while(condtion)
dastori ke bayad tekrar beshe;

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

$i = 0;
while
($i<=9)
{
echo $i.'<br />';
$i++;
}

Cool من یه حلقه می خوام که حداقل یک بار اجرا بشه!!!!!!

بعضی وقت ها نیاز میشه که حلقه ای داشته باشیم که حداقل یک بار اجرا بشه در این صورت باید از حلقه do...while استفاده کنیم. ساختار این حلقه به صورت زیره:

do
{
dastori ya dastorati ke bayad tekrar beshe;
}
while(condtion);

چون این حلقه خیلی شبیه حلقه while هست و مثال نمی خواد.

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

foreach(array as value)
{
dastori ke be ezaye har meghdar araye tekrar mishe;
}

و نکته آخر اینکه آکولاد برای دستورات do...while و foreach الزامی هست حتی اگر یک دستور داشته باشیم!

آموزش php - قسمت هفتم - آرایه ها

 


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

$std1 = "ali";
$std2 = "hamid";
$std3 = "moeen";
$std4 = "amin";
$std5 = "mina";

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

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

در زبان php روش های مختلفی برای ایجاد آرایه وجود دارد. ساده ترین روش برای ساخت لیست اسامی دانشجویان مثال قبل به صورت زیر است:

$stdNames = array("ali", "hamid", "moeen", "amin", "mina");

روش دیگر ایجاد یکی یکی عناصر این آرایه است:

$stdNames[0] = "ali";
$stdNames[1] = "hamid";
$stdNames[2] = "moeen";
$stdNames[3] = "amin";
$stdNames[4] = "mina";

اگر شماره گذاری اندیس ها برای شما مشکل ساز است می توانید به صورت زیر عمل کنید:

$stdNames[] = "ali";
$stdNames[] = "hamid";
$stdNames[] = "moeen";
$stdNames[] = "amin";
$stdNames[] = "mina";

این روش نیز مانند روش قبلی است با این تفاوت که شماره اندیس عناصر آرایه را ذکر نکردیم و php خود برای این عناصر شماره های 0 الی 4 را در نظر خواهد گرفت. این عمل را در آینده auto-incremented keys می نامیم. اینکه از کدام روش برای ایجاد آرایه استفاده نمایید هیچ تاثیری در نتیجه کار نخواهد داشت.

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

echo $stdNames[1];

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

for($i=0;$i<=4;$i++)
echo $stdNames[$i];

روش قبل روش خوبی برای نمایش همه عناصر یک آرایه است ولی بهترین روش نیست چراکه تعداد عناصر آرایه hard-code شده است. روش بهتر استفاده از حلقه های foreach به شکل زیر است:

foreach($stdNames as $name){
echo $name;
}

در صورتیکه برای اشغال زدایی نیاز دارید همه عناصر آرایه را نمایش دهید می توانید از دو توابع داخلی php به نام های print_r و var_dump استفاده نمایید:

$print_r($stdNames);
echo "<br />";
$var_dump($stdNames);

آرایه های انجمنی (Associative arrays)

اگر بخواهیم به زبان ساده تعریفی از مکانیزم آرایه ها در php داشته باشیم باید از نگاشت یاد کنیم. به عبارت دیگر آرایه php یک نگاشت از کلید (key) به مقدار (value) است. در مثال اسامی دانشجویان کلید 0 نگاشتی از مقدار "ali" و کلید 1 نگاشتی از مقدار "hamid" است. php به ما اجازه می دهد که کلیدهای با معنی تری داشته باشیم. associative array به این معنی است که php به شما اجازه می دهد برای مقادیر آرایه کلیدهای دلخواه در نظر بگیرید. گاهی اوقات به آرایه های associative دیکشنری نیز گفته می شود. لیست اسامی دانشجویان به صورت آرایه associative به شکل زیر تعریف می شود:

$stdNames = array(
"84212234" => "ali",
"86287638" => "hamid",
"83862837" => "moeen",
"79829273" => "amin",
"89736286" => "mina"
);

در مثال بالا شماره دانشجویی را به عنوان کلید در نظر گرفتیم. این نکته را حتما به خاطر بسپارید که کلیدها case-sensitive ولی type-insensitive هستند.

case-sensitive: یعنی بین حروف کوچک و بزرگ باید تفاوت قائل شویم برای مثال Air با aiR تفاوت خواهند داشت.
type-insensitive: به این معناست که نوع داده ای کلید برای ما تفاوتی ندارد مثلا 1 که از نوع int است با '1' که از نوع رشته ای است با هم تفاوتی نخواهند داشت.

آرایه های associative در زبان php به صورت زیر نیز قابل تعریف اند:

$stdNames["84212234"] = "ali";
$stdNames["86287638"] = "hamid";
$stdNames["83862837"] = "moeen";
$stdNames["79829273"] = "amin";
$stdNames["89736286"] = "mina";

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

$echo 'Name ------- Student No'.'<br />';
$echo stdNames["84212234"].'-84212234';

آرایه های چند بعدی (Multidimensional)

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

$students["Physics"] = array(
"84212234" => "ali",
"86287638" => "hamid",
"83862837" => "moeen",
"79829273" => "amin",
"89736286" => "mina"
);

$students["Computer"] = array (
"84534243" => "samira",
"85432255" => "payam",
"82355234" => "hossain",
"88553289" => "mehrdad",
"83826264" => "fatemeh"
);

برای دسترسی به عناصر آرایه چندبعدی php کافی است به شکل زیر عمل نماییم:

echo $students["Computer"]["88553289"];

در مثال بالا مفسر php نام mehrdad را در مرورگر به نمایش خواهد گذاشت.

برای کاربا آرایه ها و دستکاری آنها php توابع زیادی مانند sizeof ، unset ، asort و ... در اختیار برنامه نویس قرار می دهد. مطالعه و تحقیق در مورد کاربرد این توابع را بر عهده خوانندگان معترم قرار می دهیم. در صورت آشنایی با این توابع می توانید کاربرد و مثال های بیشتر را در بخش نظرات این مطلب اضافه نمایید.

آموزش php - قسمت هشتم - توابع


 


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

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

برنامه نویسی به این روش کاری بسیار بسیار بسیار سخت خواهد بود. کافی است یکبار در دنیای واقعی امتحان کنید!!!

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

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

در زبان php هر دو مفهوم ادغام شده اند و تحت عنوان تابع (Function) شناسایی می شوند. برای تعریف یک تابع در زبان php به روش زیر عمل می کنیم:

function fName()
{
// Code
}

برای اینکه تابعی در زبان php تعریف شود فقط و فقط کافی است در قطعه کد بالا fName را به نام مورد نظر خود تغییر دهید و دستورات مورد نیاز را در بخش Code بنویسید.

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

برای اجرای تابع در زبان php تنها کاری که باید انجام شود این است که بعد از تعریف تابع در محلی که نیاز به فرخوانی (اجرا) تابع داریم نام تابع را همراه با پرانتز باز و بسته بنویسیم:

fName();

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

پارامترهای توابع در php

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

function addNumbers()
{
$sum = $a + $b;
echo $sum;
}

ولی نکته اینجاست که در کد بالا متغیرهای $a و $b باید به صورت سراسری تعریف شوند و این بدین معناست که باید برنامه خود را با دقت خیلی زیادی بنویسیم چراکه ممکن است در بخش هایی از کد مقادیر این متغیرها را دچار تغییرات ناخواسته نماییم ، ضمن اینکه از حافطه به شکل بهینه استفاده نکرده ایم.

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

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

function addNumbers($a , $b)
{
$sum = $a + $b;
echo $sum;
}

مثال بالا تابع جمع دو عدد را با پارامترهای $a و $b نشان می دهد. باید توجه داشته باشید که در این مثال نیازی به تعریف متغیرهای سراسری نیست ، و $a و $b به صورت محلی به عنوان پارامترهای تابع addNumbers تعریف شده اند و بیرون از تابع قابل استفاده نخواهند بود.

برای ارسال مقدار به پارامترهای تابع در زبان php به شکل زیر عمل می کنیم:

addNumbers(100,200);

با اجرای دستور فوق عدد 300 برای کاربر نمایش داده می شود.

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

function addNumbers($a , $b)
{
$sum = $a + $b;
return $sum;
}

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

$result = addNumbers(100,200);

در قطعه کد php بالا متغیر $result حاوی خروجی تابع - در این مثال مقدار 300 - خواهد بود.

آموزش php - قسمت نهم - فرم ها



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

مرحله اول ایجاد فرم دریافت اطلاعات از کاربر

فرض کنيد يک فروشگاه الکترونيکي داريم که در آن محصولاتي وجود دارد و خريدار (کاربر) وارد سايت شده ، نوع و تعداد کالاي مورد نظر خود را انتخاب مي نمايد. ابتدا بايد از html کمک بگيريم و فرمي شبيه فرم زير بسازيم. اگر با فرم ها در html آشنايي نداريد بخش آموزش html فرم ها را مطالعه کنيد. پس براي شروع فايلي به نام userCart.php ايجاد و مي کنيم و کد زير را در آن قرار مي دهيم:

CODE 9-1:
<h3>محصول مورد نظر خود را انتخاب نماييد</h3>
<form>
<b>نام محصول:</b>
<select>
<option>بسته آموزشي php</option>
<option>نرم افزار xampp</option>
<option>جزوه هاي برنامه نويسي وب</option>
</select>
&nbsp;
<b>تعداد:</b>
<input type="text" />
&nbsp;
<input type="submit" value="ثبت سفارش" />
</form>

نتیجه قابل نمایش:

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

محصول مورد نظر خود را انتخاب نماييد

نام محصول: تعداد:

و اگر کد بالا کمي پيچيده به نظر ميرسد براي ادامه کار مجبوريم کمي کد html بیشتر نيز به دست پخت خود اضافه کنيم:

CODE 9-2:
<html>
<head></head>
<body dir="rtl">
<h3>محصول مورد نظر خود را انتخاب نماييد</h3>
<form method="get" action="process.php">
<b>نام محصول:</b>
<select name="cItem">
<option>بسته آموزشي php</option>
<option>نرم افزار xampp</option>
<option>جزوه هاي برنامه نويسي وب</option>
</select>
&nbsp;
<b>تعداد:</b>
<input type="text" name="cQtty" />
&nbsp;
<input type="submit" value="ثبت سفارش" />
</form>
</body>
</html>

در کد بالا خاصیت method روش ارسال اطلاعات و خاصیت action پردازشگر این فرم را تعیین میکند. در این مثال روش ارسال را get انتخاب کردیم و تصمیم گرفتیم که اطلاعات این فرم برای فایل process.php ارسال شود. به زبان ساده قرار است فایل process.php که در ادامه آن را ایجاد میکنیم وظیفه پردازش اطلاعات ارسال شده توسط کاربر را بر عهده بگیرد.

مرحله دوم ساخت فایل process.php

حال بايد سراغ کد php برويم که قرار است کار پردازش اطلاعات فرم را انجام دهد. در اينجا فقط هدف نمايش اطلاعات دريافتي از کاربر است چرا که قرار بود مثال را خيلي خيلي ساده طرح کنيم.

براي شروع اين مرحله فايل processForm.php را ايجاد مي کنيم

CODE 9-3:
1 <html>
2 <body dir="rtl">
3 <?php
4 echo 'سفارش شما ثبت شد <br />';
5 echo 'سبد خرید شما شامل <b>' . $_GET['cQtty'] . ' ' . $_GET['cItem'] . '</b> می باشد';
6 ?>
7 </body>
8 </html>

در این مثال قرار است کد php ی که نوشتیم نوع و تعداد کالای انتخابی را برای کاربر سایت نمایش دهد. با دستور echo در قسمت قبلی آموزش php آشنا شدیم ولی اگر خوب به خط 5 از کد 3-9 دقت کنیم دستور جدیدی به نام $_GET می بینیم و اگر بیشتر دقت کنیم cItem و cQtty هم آشنا به نظر میرسند. $_GET در حقیقت آرایه ای است که مقادیر ورودی فرم html ی که به سمت سرور submit شده است را در خود نگه می دارد. برای دسترسی به مقادیر این آرایه نیاز به کلید داریم. در اینجا کلید دسترسی نامی است که به عناصر فرم html خود دادیم. مثلا دستور $_GET['cQtty '] در این مثال تعداد سفارش کاربر را در اختیار ما قرار می دهد.

برای آشنایی بیشتر با آرایه ها در php به مطالعه بخش آموزش آرایه ها در php مراجعه کنید!

برای اینکه کد فرم برای زبان فارسی به صورت درست نمایش داده شود باید دو مورد زیر را حتما انجام دهیم. این دو مورد جزو مواردی است که معمولا درباره آن از ما سوال میشود و عدم رعایت آن باعث نمایش نادرست صفحات html فارسی میشود.

1 . وقتی که در ویرایشگر متن کدها را نوشتیم نوع enconding صفحه را UTF8 انتخاب کنیم. برای مثال در notepad++ از منوی Encoding گزینه Encode in UTF8 without BOM را انتخاب می کنیم و بعد فایل را ذخیره میکنیم.

2 . در تگ Body از خاصیت dir="rtl" استفاده می کنیم.

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

با ارزوی موفقیت .

برای حمایت از ما روی بنر های تبلیغاتی کلیک کنید.

ارسال نظر برای این مطلب
این نظر توسط هر روز آخرین خبر استخدامی را برات اس ام اس میفرستیم در تاریخ 1393/10/09 و 4:10 دقیقه ارسال شده است

سلام وقت بخیر

اگه تمایل داری هر روز آخرین اخبار استخدامی شرکت ، سازمان های دولتی را دریافت کنی

می تونی به لینک زیر جهت فعال سازی بری

http://sms.mida-co.ir/newsletter/6/estekhtam

این نظر توسط دریافت پنل رایگان به همراه خط اختصاصی با پیش شماره 50005 در تاریخ 1393/09/07 و 2:15 دقیقه ارسال شده است

باسلام خدمت شما مدیر عزیز

جهت ثبت نام پنل اس ام اس رایگان با همراه خط اختصاصی با پیش شماره 50005 می توانید به آدرس

http://50005.mida-co.ir

مراجعه نمائید.

منتظر حضور گرمتون هستیم

mida-co.ir

این نظر توسط پیشنهاد یک کسب کار هوشمندانه در تاریخ 1393/08/26 و 1:25 دقیقه ارسال شده است

با سلام خدمت شما

این پیام احتمالا آینده ی تجاری شما را متحول خواهد کرد

شما می توانید با حداقل سرمایه ی اولیه ،

صاحب جامع ترین مرکز فروشگاهی و خدماتی شهرتان شوید

جهت کسب اطلاعات بیشتر به وبسایت WWW.IBP24.ORG مراجعه نمایید

این نظر توسط سامانه پیامک در تاریخ 1393/07/02 و 1:36 دقیقه ارسال شده است

با سلام خدمت شما مدیر محترم
شما می توانید با عضویت در طرح همکاری فروش پنل و خطوط پیامکی از بازدید کننده وبلاک خود درآمد کسب کنید
ابتدا وارد آدرس زیر شوید و مراحل ثبت نام رو کامل نمائید
http://sms.mida-co.ir/hamkar
سپس وارد پنل کاربری شوید و از قسمت شبکه فروش و بازاریابی کد های مربوط به فروش پنل را در سایت خود قراردهید بعد از معرفی هر کاربر به شما 25 درصد سود فروش داده می شود
جهت کسب اطلاعات بیشتر به سایت زیر مراجعه نمائید
mida-co.ir
info@mida-co.ir

این نظر توسط سامانه پیامک در تاریخ 1393/04/20 و 3:57 دقیقه ارسال شده است

با سلام خدمت شما مدیر محترم

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

جهت ثبت نام به آدرس زیر مراجعه نمائید

sms5002.ir/register.php

این نظر توسط رزرو هتل با 50 درصد تخفیف در تاریخ 1392/02/25 و 15:59 دقیقه ارسال شده است


رزرو هتل شیراز ، کیش ، قشم ، مشهد و تمام نقاط با 50 درصد تخفیف

لینک رزرو هتل بشه به egardesh.com

شماره تماس : 021-44151435 و 44155227-021



مشاهده اطلاعات بیشتر در www.egardesh.com

سامانه رزرواسیون مهر

راحت ، ارزان و با اطمینان خرید کنید


کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 3
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 1
  • آی پی امروز : 15
  • آی پی دیروز : 2
  • بازدید امروز : 9
  • باردید دیروز : 0
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 9
  • بازدید ماه : 9
  • بازدید سال : 11
  • بازدید کلی : 425