انواع متغييرها

امروز مي خواهيم در مورد انواع متغيير ها صحبت كنيم و همچنين چگونگي به كار بردن متغيير هاي و آرايه ها در يك اسكريپت PHP.
براي تبديل صفحات ساده و ثابت به برنامه هاي ديناميك و سايت هاي جذاب در ابتدا شما احتياج به اين خواهيد داشت كه بتوانيد اطلاعات را در اختيار بگيريد.متغيير ها همان ابزاري هستند كه شما با استفاده از آن ها مي توانيد اطلاعات را در اختيار بگيريد  و آنها را در دسترس خود قرار دهيد. متغيير ها يكي از مهمترين ابزارها و مفاهيم هر زبان برنامه نويسي محسوب مي شوند.

من در اينجا سه دسته مختلف از انواع متغيير ها را توضيح مي دهم.

1) اعداد (numbers)
2) رشته ها (String)
3) آرايه ها (arrays)

دسته اول شامل دو نوع متغيير است:

1)اعداد صحيح (integers)
2)اعداد اعشاري (floating - point) ( همچنين اعداد اعشاري با دقت مضاعف double)

اما از آنجايي كه تفاوت چنداني در چگونگي به كار بردن اين دونوع متغيير وجود ندارد . اين دو را در يك دسته قرار مي دهيم.

PHP همچنين داراي يك نوع متغيير به نام شيء (object) مي باشد.

اعداد
نكته:اعداد به صورت اعشاري ( همراه با مميز ) و يا اعدا كسري از نوع متغييرهاي اعشاري محسوب مي شوند. براي مثال (1.0) در PHP يك عدد اعشاري به حساب مي آيد. توجه كنيد كه در PHP اعداد به صورت كسري ذخيره نمي شوند بلكه معادل اعشاري خود تبديل شده و سپس ذخيره مي شوند.

مثالهايي از اعداد صحيح معتبر:

آ 1آ و 1972آ و 1-

مثالهاي از اعداد اعشاري :

1.0آ و 19.72 و 1.0-

همچنين مثالهاي كه در دسته اعداد قرار نمي گيرند:

4/11  a1972 آ 02.23.72

رشته ها
يك متغيير از نوع رشته اي (String) از تركيب هر نوع كاركتري ( حروف - اعداد - علائم و جاي خالي ) مي تواند ساخته شود.اما اين كاركترها بايد در داخل يكي از علامتهاي Single(' ') Quotation و يا (" " ) Double Quotation قرار گيرند.

مثال:
HELLO , WORLD !""

"hello frist name ! "

"1 1/4"

"how are you?"

"02.23.72"

"1972"
نكته : اگر عدد نيز در داخل Quotation قرار گيرد يه عنوان يك داده رشته اي در نظر گرفته مي شود.

مثالهاي از داده هاي رشته اي غير مجاز:

hello world!

how are you" " "I Said," "

توجه!!!

شايد اين سئوال در ذهن شما به وجود بياد كه چطوري مي تونيم يك علامت " را به مرور گر ارسال كنيم؟

ما مي تونيم اين مشكل رو در PHP به اين صورت رفع كنيم كه قبل از علامت quitation از علامت (\) استفاده كنيم!!!

پس وقتي ما در دستور print() اين عبارت (I Said, \"How are You?\" "") رو تايپ كنيم خروجي اين دستور به صورت ( I Said, "How are You?" ) خواهيد ديد.

بنابراين هر چند كه گفته شد در داده رشته اي هر تركيبي از كاراكترها به كار مي رود. بايد توجه داشته باشيد كه در مورد كاراكترهاي ويژه بايد دقت خاصي اعمال شود. كاراكترهاي ويژه ديگري نيز وجود دارند كه هنگام استفاده از آنها در يك داده رشته اي بايد علامت backslash (\) قبل از آنها قرار دهيم.

اين كاراكتر ها عبارت است از:

single quotation ( ' )

apostrophe

backslash

و علامت dollar

نكات:
-مزيت استفاده از double quotes به جاي single quotes در اين است كه در حالت دوم اگر متغييري داخل داده رشته اي خود به كار ببريد نام متغيير به عنوان جزئي از داده در نظر گرفته مي شود و نه مقدار آن متغيير جايگزين نام آن نمي شود.

- در درسهاي قبلي اشاره شد كه در تركيب \n براي مثال در تابع print() باعث ايجاد خط جديد مي شود. بنابراين مشاهده مي كنيد كه در اين حالت خاص علامت backslash باعث در نظر گرفتن n به صورت يك كاراكتر معمولي نشد.از موارد خاص ديگر مي توان به تركيب \r ( بازگشت خطي ( carriage return)) و \t ( براي قرار دادن يك tab) اشاره كرد.

آرايه ها:
از آنجايي كه آرايه ها كمي پيچيده تر از داده هاي عددي و رشته اي به حساب مي آيند.در اين قسمت تنها مختصري در مورد آنها توضيح داده مي شود و در درسهاي آينده با كاربرد هاي آن بيشتر آشنا خواهيد شد.

بر خلاف داده هاي عددي و رشته اي كه تنها مي توانند داراي يك ارزش و يا مقدار باشند. آرايه ها مي توانند حاوي ليستي از مقادير باشند.بنابراين شما مي توانيد مقادير مختلف عددي و يا رشته اي را داخل يك آرايه قرار دهيد. همچنين آرايه ها خود مي توانند شامل ليستي از آرايه ها باشند.

نكته:
- آرايه هاي استاندارد در PHP از مقادير دادهاي و يا عددي تشكيل مي شوند ( اين آرايه ها به آرايه هاي شماره گذاري شده ( indexed ) و يا برداري ( vector ) نيز معروف هستند.)

و اين همانآ نامي است كه Perl به اين دسته از آرايه ها نسبت مي دهد. در Perl آرايه هايي كه خود از آرايه هايي كه خود از آرايه تشكيل شده باشد. به نامهاي آرايه هاي hash و associative و multi_dimensional شناخته مي شوند. در PHP به هر دو دسته ( يك يا چند بعدي ) لفظ آ« آرايه آ» اطلاق مي شود.

نسبت دادن مقادير به متغييرها
در PHP شما به اعلان ( declare ) متغييرها احتياج نداريد. همچنين نوع يك متغيير در هنگام عمل انتساب مشخص مي شود.

در PHP براي نسبت دادن يك مقدار به يك متغيير و ذخيره آن مقدار از علامت مساوي ( = ) استفاده مي كنيد.در اين هنگام اين علامت با نام عملگر انتساب ( assignment Operater ) خوانده مي شود.

مثال:

$number = 1;

$floating-number = 1.2;

$string = "Hello,World!";

نكته:در PHP نيز همانند Java Script نوع متغيير در طول برنامه مي تواند تغيير كند.

متغييرهاي از پيش تعريف شده
متغييرهاي از پيش تعريف شده ( Predefined Variables ) انواع خاصي از متغيير ها هستند كه در يكي از برنامه ها به كار گرفته مي شوند:

برنامه هاي كاربردي سرويس دهنده وب ( web server applivations (مانند Apache )

سيستم عاملهاي سرويس دهنده وب ( web server operationg system ( مانند windows nt و يا Solaris)

و يا در خود مدل PHP .

در دو دسته اول اين متغيير ها به متغييرهاي محيطي ( variables enviromental ) معروفند .

متغييرهاي از پيش تعريف شده در سرويس دهنده هاي مختلف ممكن است داراي تفاوتهايي باشند . بنابراين براي مشاهده اين متغييرها بهتر است از تابع phpinfo() كه در درسهاي قبلي توضيح داده ام استفاده كنيد.

دو دليل براي آشنايي شما با مفهوم متغييرهاي از پيش تعريف شده وجود دارد.

دليل اول اينست كه اين متغييرها در برنامه نويسي شما كاربرد خواهند داشت و دليل ديگر آنكه با شناخت اين متغييرها شما ديگر به صورت تصادفي نام يك متغيير را هم نام با اين متغييرها انتخاب نمي كنيد.

نمونه هايي از متغييرهاي محيطي سرويس دهنده عبارتند از: Hostname ( نامي كه سرويس دهنده به خود نسبت داده است) و Ostype ( سيستم عاملي كه بر روي سرويس دهنده در حال اجراء مي باشد.)

نمونه هاي از متغيير هاي محيطي Apache عبارتند از: Document_Root ( مكان ذخيره فايل ها بر روي سرويس دهنده) و HTTP_USER_AGENT ( جزئياتي در مورد مرورگر و Platfrom كاربر را ارائه مي دهد).

متغيير PHP-SELF پر كاربردترين متغيير PHP مي باشد كه نام صفحه جاري را در خود ذخيره كرده است .

نكته:اگر شما متغييرهاي خود را هم نام با متغييرهاي محيطي سيستم نامگذاري كنيد. نتايجي عجيب و منحصر به فردي حاصل مي شوند. هر چند احتمال انجام اين كار اندك مي باشد. با اين وجود بهتر است لستي از متغيير هاي محيطي سيستم را در هنگام نامگذاري متغييرها در برابر خود داشته باشيد. 

اين بود درس امروز

در درسهاي بعدي يك تغيير كلي در سيستم آموزش اعمال خواهد شد كه حتما با ما باشيد.

آموزش PHP بخش اول     آموزش PHP بخش دوم      آموزش PHP بخش سوم

آموزش PHP بخش چهارم   آموزش PHP بخش پنجم    آموزش PHP بخش ششم

آموزش PHP بخش هفتم       آموزش PHP بخش هشتم