آموزش PHP (بخش نهم) تعریف تابع و قلمرو متغیرها

- visibility ١۴ mode_comment

در این قسمت از آموزش PHP شما را با نحوه تعریف تابع در زبان PHP و همچنین قلمرو متغیرها آشنا خواهیم ساخت ، این قسمت یکی از کلیدی ترین مباحث آموزشی PHP می باشد.

تعریف یک تابع توسط شما :

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

یک مثال کلی برای درک مفهوم تعریف یک تابع :

فرض نمائید که شما با استفاده از یک گروه چند نفره ، قصد برنامه نویسی یک CMS را دارید ، شما برای این هماهنگی بین خود (گروه 3 نفره شما) ایجاد کنید ، کار را تقسیم می کنید ، و هر بخش کد را یک نفر انجام می دهد ، پس تعریف یک تابع بسیار کاربردی می باشد.

Syntax تعریف تابع در PHP :

info نکته :

نام یک تابع نمیتواند با یک عدد شروع شود مانند 1milad

مثال 1 :

در قطعه کد فوق ، یک تابع به نام writeName تعریف نموده ایم ، سپس در بخش کد این تابع ، کلمه milad heydari را چاپ نموده ایم ، حال در بخش بعدی تابع را با استنفاده از نام آن و یک علامت پرانتر باز و بسته فراخوانی نموده ایم.

مثال 2 :

کد فوق نیز ، یک تابع با نام mySite تعریف نموده ایم و سپس آن را در برنامه فراخونی کرده ایم ، در ضمن حتما این دو کد را در xampp تست نمائید.

تعریف یک تابع همراه با پارامتر :

برای اضافه کردن قابلیت های بیشتر به تابع ، از پارامترها استفاده می شود ، این پارامتر ها دقیقا همانند یک متغیر هستند ، این پارامتر ها درون پرانتز باز و بسته ی تعریف تابع قرار می گیرند :

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

در قطعه کد فوق ، ما یک تابع به نام writeName با پارامتر fname تعریف نموده ایم ، حال در بخش کد این تابع ، کد چاپ نمودن پارامتر همراه کلمه 7learn را قرار داده ایم.

سپس در بخش بیرونی تعریف تابع ، ما در ابتدا جمله My name is را چاپ نموده ایم ، و سپس تابع writeName را همراه با نام دلخواه فراخوانی نموده ایم ، پس تا به حال متوجه شده اید که ، متغیر fname برابر با milad قرار گرفته شد ، و این یعنی تابع با پارامتر.

info نکته :

متغیر های داخل تابع (پارامترها ) تبدیل به مقداری می شوند که شما در هنگام فراخوانی تابع ، آن ها را وارد نموده اید :

در قطعه کد فوق ، یک تابع با نام add با دو پارامتر x و y تعریف نموده ایم ، سپس کد ، جمع دو پارامتر را قرار داده ایم و با دستور return مقدار را برگردانده ایم.

سپس در قسمت بیرونی تعریف تابع ، تابع را با دو مقدار 1 و 16 مقدار دهی کرده ایم ، سپس تابع ، این دو عدد را با یکدیگر جمع نموده ، و حاصل را بر می گرداند.

برای آشنایی بیشتر کد زیر را امتحان نمائید :

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

قلمرو متغیر ها :

مکان معرفی کردن یک متغیر ، تاثیر بسیار زیادی بر روی دسترسی به متغیر دارد .

متغیرهای PHP دارای 3 قلمرو می باشند :

1) متغیرهای محلی :

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

به نظر شما ، خروجی کد فوق چیست؟؟؟ در کد فوق ، در ابتدا یک متغیر x با مقدار 20 تعریف شده است ، سپس در داخل تابع milad یک متغیر با همان نام (x) با مقدار 10 تعریف شده است (این دو متغیر با یکدیگر تفاوت دارد!) ، بعد از فراخونی  و چاپ متغیرها خروجی ها با یکدیگر تفاوت دارد ، متغیر x درون تابع یک متغیر محلی می باشد ، تغییر مقدار متغیر x محلی ، هیچ ارتباطی با متغیر x که دارای مقدار 20 است ، ندارد .

2)متغیرهای جهانی :

در مقابل متغیرهای محلی، متغیرهای جهانی وجود دارد ، که آنها را می توان در هرجایی از برنامه مورد استفاده قرار داد و آن آن را تغییر داد ، برای این که یک متغیر را به صورت جهانی تعریف نمائید ، از کلمه کلیدی global استفاده می کنیم .

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

مقدار خروجی ما برابر با 21 می باشد ، چون متغیر x را در کلمه کلیدی global قرار داده ایم ، اما اگر کلمه global را حذف نمائید ، خروجی برابر با یک می شود .

یک روش دیگر برای متغیر جهانی وجود دارد و آن هم استفاه از آرایه سوپرگلوبال GLOBALS می باشد :

info نکته :

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

3) متغیرهای استاتیک :

این نوع متغیرها ، که از نام آن ها مشص است ، همیشه دارای مقدار یکسانی هستند ، و اگر هم از تابع خارج شوند ، مقدار خود را از دست نمی دهند. برای این که یک متغیر را به صورت استاتیک تعریف کنید از  کلمه کلیدی static استفاده می نمائیم:

از خروجی کد فوق ، چه انتظاری دارید ، اگر متغیر ما به صورت static تعریف نشده بود ، خروجی ما برابر با مقدار پائین می شد :

1

1

1

اما به دلیل اینکه متغیر را به صورت static تعریف نموده ایم ، خروجی می شود:

1

2

3

این بخش نیز به پایان رسید ، ان شاالله در بخش های بعدی شروع به انجام پروژه های کاربردی خواهیم کرد.

comment دیدگاه کاربران
علی حیدری

پرچم بالاست

haditgr

داداش ترکوندی انصافا خیلی مطلبات توپن….. 😉

میلاد حیدری

شما لطف دارید…

hamid zar

باتشکر فراوان خدمت شما استاد محترم.

shiva

سلام شما asp.net .mysql رو آمموزش نمیدین؟

میلاد حیدری

mysql را بله ، ان شاالله آموزش خواهیم داد ولی فی الحال برنامه ای برای asp نداریم

عباس بهرامی کیا

سلام میلاد جان ممنون از آموزش هات

فقط اینکه در مورد شی گرایی و استفاده از کلاس ها در پی اچ پی چیزی توضیح نمی دید؟ می دونی که مهمترین مبحث در پی اچ پی همین کلاس ها و نحوه کاربرد و استفاده شون هست

میلاد حیدری

ان شاالله ، برای شروع oop قصد دارم اول مفاهیم شی گرائی را شروع کنم ، بعد شروع بعد به کلاس ها در php خواهم کرد ، البته مهم ترین مبحث نیست ، شی گرائی از نسخه 3 به بعد وارد php شد ، می توان بدون شی گرائی نیز کار خود را انجام دهید ، بیشتر برای راحتی و کوتاه کردن راه می باشد

عباس بهرامی کیا

ممنون ازت پس حسابی منتظریم.

sahar20

ممنون از شما آموزش خیلی خوبی بود…موفق باشید

میلاد حیدری

از لطف شما ممنوم

apastorof

ممنون از آموزاس خوبتون! این بخش پروژه های کاربردی کی شروع میشه؟! نکنه همین آموزشایی هست که بین همین آموزشای به ترتیب 1 و 2 و 3 php هست؟ مثلا “مطالبی پیرامون برنامه نویسی php و آمادگی برای چند پروژه”

سجاد دریس

سلام.
ممنون.
بله همونا هستن.

big

سلام داش میلاد تو پروژه ی دانشجویی انجام میدی
emali کن

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.