ثبت نام

Captcha

ورود

Captcha

تعریف متغیر ها در php

تعریف متغیر ها در php

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

متغیرها در php برای نگهداری اطلاعات و استفاده از آنها به کار می روند. این اطلاعات می توانند شامل اعداد یا رشته های متنی و یا آرایه ها باشند.

زبان برنامه نویسی php از انواع مختلف داده ها پشتیبانی می کند و شما می توانید متغیرهای مورد نظر خود را در برنامه تعریف کرده و سپس در هر جای برنامه که می خواهید از آنها استفاده نمایید و همچنین می توانید آنها را تغییر دهید.

در php در مجموع هشت نوع داده وجود دارد که در زیر لیستی از داده ها را مشاهده می کنید.

اعداد صحیح integer : شامل اعداد صحیح هستند که شامل اعداد 1 تا 9 می باشند به عنوان مثال 498 یا 52

دابل doubles : اعداد اعشاری مانند 78.2 یا 10.456789

بولین boolean : فقط دو نوع ارزش ممکن دارند غلط (false) یا درست (true)

تهی null : یک نوع خاص است که فقط یک ارزش دارد: null یا تهی.

رشته ها string : سری متداول از کاراکترها است مثل : 'PHP supports string operations'

آرایه ها arrays : مجموعه ارزش یا مقدارهای نامگذاری وشاخص زده شده هستند.

شی ها یا object ها : شی ها نمونه های از کلاس های تعریف شده توسط برنامه ساز هستند که می توانند هر دو نوع دیگر Value ها و توابع را که مختص آن کلاس هستند را بسته بندی (Encapsulate) کند.

منابع (Resource) : متغیرهای خاصی هستند که ارجاعات به منابع بیرونی {خارج از}PHP را نگه می دارد. (از قبیل ارتباطات پایگاه داده) پنج تای اولی انواع بسیار ساده ای هستند، و دوتای(arrays، objects) بعدی پیچیده اند، متغیرهای پیچیده می توانند مقادیر اختیاری از انواع مختلف را بسته بندی(Encapsulate) کنند، در حالی که نوع های ساده از پس این کار برنمی آیند.

 

تعریف متغیر در php

برای تعریف متغیر در PHP ، در ابتدای آن باید از $ استفاده کرد. و سپس نام متغیر را نوشت. همچنین می توانید در هنگام تعریف آن را مقدار دهی کرده و یا اینکه بعدا در جای دیگر مقداری را به آن نسبت دهید.

برای مثال به قطعه کد زیر دقت کنید، قصد داریم دو متغییر x و y را تعریف کنیم و آنها را با هم جمع کرده و سپس چاپ کنیم.

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

نکته : زبان PHP در تعریف متغیرها به کوچک و بزرگ بودن حروف حساس است . بنابراین برای مثال متغیر Name با name متفاوت خواهد بود.

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

 

قوانین نام گذاری متغیرها در PHP :

در نامگذاری متغیرها در PHP باید یک سری قوانین را رعایت کنید تا برنامه با مشکل مواجه نشود.

1. متغیرها حتما باید با $ شروع شوند. به عنوان مثال name$

2. نام یک متغیر حتما باید با یک حرف یا علامت _ شروع شود. همچنین نمی توان در ابتدای نام از عدد استفاده کرد. به عنوان مثال نام های name یا name_ صحیح و نام های 1name غلط می باشند.

3. نام متغیرها فقط می تواند شامل حروف کوچک و بزرگ و اعداد و علامت _ باشد و استفاده از علامت های دیگر باعث ایجاد خطا می شود.

4. در نام یک متغیر نمی تواند فاصله قرار بگیرد و به جای آن می توانید از علامت _ استفاده کنید.

5. نام متغیرها به حروف بزرگ و کوچک حساس هستند. به عنوان مثال متغیر Name$ با متغیر name$ متقاوت است.

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

 

محدوده متغیرها در php

در php متغیرها را می توان در هر جایی از برنامه تعریف کرد. منظور از محدوده، بخشی از اسکریپت است که متغیر می تواند در آن محدوده استفاده شود.

php دارای سه محدوده مختلف برای متغیرها می باشد که شامل :

1. local

2. global

3. static

متغیرهای عمومی یا global در php

متغیرهایی که در خارج از تابع تعریف می شوند، عمومی می شوند و در تمام اسکریپت به جز توابع به آنها دسترسی خواهیم داشت.

به مثال زیر توجه کنید:

در مثال بالا مقدار x را در خارج از تابع تعریف کردیم. سپس یک تابع به نام myTest تعریف کردیم تا مقدار x را نمایش دهیم.

چون x خارج از تابع تعریف شده در نتیجه در داخل تابع به آن دسترسی نداریم و برنامه خطا خواهد داد که متغیر x وجود ندارد.

ولی در چاپ دوم، وقتی خارج از تابع مقدار x را چاپ میکنیم مقدار 5 نمایش داده می شود و چون خارج از تابع تعریف شده و به آن در خارج از تابع دسترسی داریم.

یا در مثال پایین، چون متغیر x در تابع تعریف شده، در چاپ اول نمایش داده می شود ولی در چاپ دوم که خارج از تابع است، به دلیل اینکه متغیر در داخل تابع تعریف شده به آن دسترسی ندارد و خطا خواهد داد.

کلمه کلیدی global در php

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

در مثال بالا دو متغیر x و y در خارج از تابع به صورت عمومی تعریف شدند. سپس تابع myTest تعریف شده است که در داخل تابع برای اینکه به دو متغیر x و y دسترسی داشته باشیم از کلمه کلیدی global قبل از این دو متغیر استفاده کردیم. سپس متغیرهای x و y را با هم جمع کرده و در y قرار می دهیم. y مقدار جدید 15 را می گیرد و وقتی تابع را اجرا می کنیم و مقدار y را نمایش می دهیم مقدار 15 چاپ خواهد شد.

آرایه GLOBALS$

همچنین تمام متغیرهای عمومی در این آرایه با نام متغیر به عنوان ایندکس ذخیره می شوند که می توانید با استفاده از این آرایه به متغیرهای عمومی دسترسی داشته باشید.

در مثال بالا خروجی همانند مثال قبل عدد 15 خواهد بود.

 

کلمه کلیدی static در php

وقتی متغیرهایی در داخل تابع تعریف می شوند بعد از پایان تابع، تمام متغیرها حذف خواهند شد. اما در بعضی از مواقع نیاز می شود که از متغیر محلی در خارج از تابع هم استفاده شود در نتیجه آن متغیر نباید پس از پایان تابع حذف شود. برای این کار از کلمه کلیدی static استفاده می کنیم.

در مثال بالا در تابع myTest متغیری به نام x تعریف کردیم و مقدار آن را برابر 0 قرار دادیم. سپس مقدار x را چاپ میکنیم و بعد از چاپ یک مقدار به x اضافه می کنیم.

دستور ++x$ یعنی به مقدار x یکی اضافه کن.

سپس 3 بار تابع myTest را فراخوانی میکنیم.

در فراخوانی اول مقدار x که صفر است را چاپ می کند و بعد از چاپ مقدار x به عدد 1 تغییر می کند.

در فراخوانی دوم مجدد مقدار x برابر صفر خواهد بود که آن را چاپ می کند و بعد از چاپ مقدار x به عدد 1 تغییر می کند. برای فراخوانی سوم هم به همین صورت خواهد بود و عدد صفر را چاپ خواهد کرد.

حال به مثال زیر توجه کنید که کلمه کلیدی static را قبل از x قرار خواهیم داد.

در مثال بالا به دلیل اینکه کلمه کلیدی static را قرار دادیم، در فراخوانی اول بعد از اینکه عدد صفر را چاپ کرد، مقدار x به عدد 1 تغییر می کند و برای فراخوانی دوم همچنان مقدار x عدد 1 خواهد بود و عدد 1 را چاپ خواهد کرد و سپس مقدار x به عدد 2 تغییر می کند و در فراخوانی سوم عدد 2 را چاپ می کند.

دیدگاه ها

ارسال دیدگاه