آموزش مقدماتی PHP – قسمت یازدهم(توابع)
سلام
با یک قسمت دیگه از سری آموزش های مقدماتی PHP درخدمتتون هستیم، در این آموزش میخواهیم بپردازیم به میحث بسیار جالب و پر کابردی توابع(functions)، اگر تعریف کوتاهی از توابع خواسته باشیم بگیم،از توابع برای انجام کارهایی تکراری استفاده میکنیم، در ادامه همراه بپرسم باشید.
آموزش:
ویژگی های تابع
در PHP بیش از ۱۰۰۰ تابع از پیش تعریف شده وجود دارد که قدرت PHP را چند برابر میکند، استفاده از توابع ویژگی های زیادی دارد که در ادامه به چند مورد اشاره میکنیم:
- یک تابع بلافاصله پس از بارگزاری برنامه اجرا نمیشود، زمانی اجرا میشود که ما تابع را صدا کنیم.
- علاوه بر توابع از پیش تعریف شده در PHP، ما نیز میتوانیم تابع خود را ایجاد کنیم.
- کارهای تکراری که در طول برنامه میخواهیم انجام شود را به تابع میسپاریم.
- یک تابع بارها میتواند در برنامه استفاده شود.
- برای اجرای تابع کافیست آن را صدا کنیم.
تعریف تابع
برای تعریف یک تابع از کلمه function استفاده میکنیم و سپس نام تابع را می نویسیم.
ساختار تعریف یک تابع به شکل زیر است:
۱ ۲ ۳ |
function functionName() { code to be executed; } |
توجه: نام تابع میتواند با حروف کوچک یا _(underscore) شروع شود(نام تابع نمیتواند با عدد شروع شود).
نکته: نام تابع نشان دهنده عملکرد تابع است، لذا اسمی که برای تابع انتخاب میکنید با کاری که تابع قرار است انجام دهد باید مرتبط باشد.
توابع به حروف کوچک و بزرگ(case-sensitive) حساس نیستند
مثال:
در مثال زیر یک تابع تعریف کردیم، که عبارت beporsam.ir را چاپ میکند.
۱ ۲ ۳ ۴ ۵ ۶ ۷ |
<?php function writeMsg() { echo "beporsam.ir"; } writeMsg(); // call the function ?> |
در قطعه کد بالا یک تابع به اسم ()writeMsg ساختیم که با گذاشتن } ابتدای تابع و با گذاشتن { انتهای تابع را مشخص کردیم، سپس داخل تابع دستور چاپ عبارت beporsam.ir را نوشتیم. سپس برای اجرای تابع کافیست که آن را صدا بزنیم(خط۶).
هر بار که تابع را صدا بزنیم، تابع اجرا میشود.
پارامترهای تابع
داده ها را میتوانیم مثل متغیرها به توابع نیز پاس بدیم.
پارامترهای توابع را داخل پرانتز تعریف میکنیم، یک تابع میتواند پارامتر های زیادی داشته باشد(از ۱ تا بینهایت)، پارامترها را با , از یکدیگر جدا میکنیم.
مثال:
در مثال زیر یک تابع تعریف کردیم که یک ورودی به عنوان پارامتر میگیرد و آن را چاپ میکند:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
<?php function name($name) { echo "My Name Is: $name<br>"; } name("Ahmad"); name("Ali"); name("Morteza"); ?> |
در قطعه کد بالا ما یک تابع به اسم name ساختیم و یک پارامتر ورودی بهش دادیم(name$) سپس در خط ۳ با دستور echo متغیری که به عنوان ورودی بهش دادیم را چاپ کردیم، سپس نام تابع را صدا زدیم و ورودی بهش دادیم، هر ورودی که به تابع بدیم، تابع آن را چاپ میکند.
مثال زیر علاوه بر نام، نام خانوادگی را نیز از ورودی دریافت و چاپ میکند:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
<?php function name($name,$fname) { echo "My Name Is: $name & Family: $fname <br>"; } name("Ahmad","Akhondy"); name("Ali","Nasiri"); name("Morteza","Sabaghi"); ?> |
علاوه بر نام و نام خانوادگی نیز میتوانیم، سن را هم دریافت کنیم:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ |
<?php function name($name,$fname,$age) { echo "My Name Is: $name & Family: $fname AND Age: $age <br>"; } name("Ahmad","Akhondy",۲۶); name("Ali","Nasiri",۲۰); name("Morteza","Sabaghi",۱۷); ?> |
سن چون از نوع عددی(Integer) هست، لذا لازم نیست درون “” بنویسیم.
همانطور که قبلا گفتیم و در مثال ها نیز مشاهده کردید، یک تابع به تعداد دلخواه می تواند ورودی داشته باشد.
در مثال زیر هم تابعی می نویسیم که جمع دو عدد را انجام دهد:
۱ ۲ ۳ ۴ ۵ ۶ |
<?php function sum($number1,$number2){ echo $number1 + $number2; } sum(۵,۱۰); ?> |
تابع با پارامتر پیشفرض
در توابع میتوانیم مقدارهایی را برای پارامترها به صورت پیشفرض تعیین کنیم، تا اگر در هنگام صدا زدن تابع، مقداری را وارد نکردیم، مقدار پیشفرض، به عنوان ورودی در نظر گرفته شود.
در مثال زیر برای پارامتر site$ یک ورودی پیشفرض گذاشتیم:
۱ ۲ ۳ ۴ ۵ ۶ ۷ |
<?php function address($site = "www.beporsam.ir"){ echo "Website Address: $site <br>"; } address(); address("www.fadev.ir"); ?> |
در قطعه کد بالا یک ورودی پیشفرض برای site$ تعریف کردیم، حالا در خط ۵ وقتی تابع را صدا میزنیم و بهش ورودی نمیدیم، ورودی پیشفرض نمایش داده میشه و در خط ۶ وقتی ورودی بهش میدیم، ورودی جدید نمایش داده میشه.
مقادیر بازگشتی توابع
برای بازگرداندن یک مقدار از کلمه return استفاده میکنیم:
۱ ۲ ۳ ۴ ۵ ۶ ۷ |
<?php function sum($number1, $number2) { $result = $number1 + $number2; return $result; } echo sum(۱۰,۲۰); ?> |
مثال بالا، همانند مثال قبلی هست با این تفاوت که نتیجه دو متغیر number1,number2 را داخل result$ ذخیره کردیم(خط۳) سپس در خط ۴ متغیر result$ را return کردیم(برگشت دادیم)، سپس هنگام فراخوانی تابع را چاپ و دو مقدار را بهش پاس میدیم.
تمرین: قطعه کدی بنویسید که ۲ عدد را دریافت و کاربر مشخص کند که این دو عدد باهم جمع، تفریق،ضرب یا … شود، در واقع تابع باید ۳ پارامتر داشته باشد که ۲تای آن برای دریافت عدد و یکی دیگر آن برای دریافت عملگر(+,-,* و …) است.
مثال ها و تمرین های بی شماری میشه زد که به دلیل طولانی نشدن آموزش تا همینجا بسنده میکنم تا در آینده در مباحث پیشرفته به این مسائل بیشتر بپردازیم.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید