سوسا وب تولز -ابزار وبلاگ
سفارش تبلیغ
صبا ویژن

پی اچ پی 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 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$ دو متغیر مستقل اند!

 

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

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

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 شکل کلی دستور شرطی به صورت زیر هستش:

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 چهار نوع حلقه داریم که بر حسب نیاز از اونها استفاده میکنیم. حلقه ها معمولا برای انجام کارهای تکراری مورد استفاده قرار میگیرن مثلا برای خوندن تعداد رکورد از بانک اطلاعاتی یا هر کار تکراری که خودتون در نظر بگیرید.

کارمون رو با حلقه 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 الزامی هست حتی اگر یک دستور داشته باشیم!


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

آرایه ها انواع خاصی از متغیرها به حساب می آیند که می توانند چندین داده را در قالب یک نام ذخیره کنند. برای مثال فرض کنید قرار است اسامی 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 مقدماتی به آن پرداخته شد به این صورت بود که بخش های مختلف برنامه به ترتیب ، از نقطه الف آغاز و در نقطه ب به اتمام می رسید هر چند که در راه رسیدن از نقطه الف به نقطه ب ممکن بود به کمک دستورات شرطی 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 - خواهد بود.


91/4/10::: 11:51 ص
  
  
پیامهای عمومی ارسال شده
+ گوگل دیگه قدیمی شده نه؟!!!!