PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آموزش php شماره (9)



TAHA
11-05-2009, 11:49 AM
انواع متغییرها
امروز می خواهیم در مورد انواع متغییر ها صحبت کنیم و همچنین چگونگی به کار بردن متغییر های و آرایه ها در یک اسکریپت 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 قرار گیرند.
مثال:

نکته : اگر عدد نیز در داخل 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 می باشد که نام صفحه جاری را در خود ذخیره کرده است .
نکته:اگر شما متغییرهای خود را هم نام با متغییرهای محیطی سیستم نامگذاری کنید. نتایجی عجیب و منحصر به فردی حاصل می شوند. هر چند احتمال انجام این کار اندک می باشد. با این وجود بهتر است لستی از متغییر های محیطی سیستم را در هنگام نامگذاری متغییرها در برابر خود داشته باشید.