آموزش PHP – توابع PHP – بخش اول

  • منتشر شده در تاریخ

آموزش PHP

در قسمت قبلی کار با حلقه ها در PHP را یاد گرفتیم. در این بخش از سری آموزش php قصد داریم نحوه ساخت توابع PHP  بصورت سفارشی و شخصی را آموزش بدیم.

 

توابع از پیش ساخته شده (Built-in) در PHP

یک تابع شامل بلاکی از کدها است که یک کار/عملیات مشخصی را انجام می دهد.

PHP مجموعه عظیمی از توابع از پیش ساخته شده یا داخلی دارد که مستقیما می توان آن را داخل اسکریپت PHP برای انجام عملیات مشخصی صدا زد مثل gettype(), print_r(), var_dump() و …

 

توابع تعریف-شده-توسط-کاربر (User-Defined) در PHP

علاوه بر توابع داخلی, PHP به ما اجازه ساخت توابع دلخواهمان را می دهد. این راهی برای ساخت پکیجی از کدهای قابل استفاده مجدد به منظور اجرای عملیات مشخص است و می توان هر کدام را جدا از برنامه اصلی نگهداری کرد.

بعضی از مزیت های توابع بصورت زیر است :

توابع PHP تکرار در کدهای برنامه را کاهش می دهند :

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

حالا می توانید عملیات مشخصی را با صدازدن این تابع در هرجایی که خواستید داخل اسکریپت خود بدون نیاز به کپی و پیست کردن مجدد کد, بارها و باره استفاده کنید.

توابع نگهداری و توسعه کد را بسیار آسان تر می کند :

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

توابع PHP خطایابی را آسان تر می کند :

زمانی که برنامه را به توابع تقسیم می کند, اگر هر نوع خطایی رخ دهد, متوجه می شوید که دقیقا کدام خطا باعث آن مشکل شده است و چطور می شود آن را پیاد کرد. بنابراین با توابع, پیدا و حل کردن خطاها بسیار آسان تر می شود.

توابع می توانند در برنامه های دیگر مجدد استفاده شوند :

از آنجا که توابع جدا از بقیه اسکریپت هستند, بنابراین استفاده همان توابع در دیگر اپلیکیشن ها فقط با کپی یا include فایل های php آن به سادگی قابل انجام است.

بخش زیر به شما نحوه تعریف ساده توابع PHP سفارشی را نشان می دهد.

 

ایجاد و فراخوانی توابع PHP

سینتکس پایه برای ساخت تابع سفارشی بصورت زیر است :

اعلان ساخت تابع سفارشی ابتدا با کلمه function شروع می شود, سپس نام تابعی که می خواهید بسازید و در ادامه پارانتر ها () را قرار می دهید و در نهایت براکت های فرفری {} .

این یک مثال از ساخت تابع سفارشی است که تاریخ امروز را نشان می دهد :

نکته : نام یک تابع باید با حروف لاتین یا کارکتر _ شروع شود نه عدد. البته که بعد حروف لاتین یا ـ می توانید از اعداد یا حروف لاتین بیشتر و .. استفاده کنید. نام توابع به حروف کوچک و بزرگ حساس نیستند.

 

توابع با پارامترها

می توانید پارامترهایی را هنگام تعریف تابع مشخص کنید که مقادیری را در زمان اجرا دریافت کنند.

کار پارامترها همانند متغیرها در تابع هستند که در زمان اجرا با مقادیر (که آرگومان گفته می شود) پر می شوند.

می توانید هر تعداد که نیاز داشتید پارامتر تعریف کنید. به هرحال برای هر پارامتر مشخص شده, یک آرگومان نیاز است که در هنگام صدا زدن تابع باید پاس داده شود.

تابع getSum() در مثال زیر دو مقدار عددی را به عنوان آرگومان دریافت و آن ها را بایکدیگر حمع و خروجی را در مرورگر نمایش می دهد.

خروجی مثال بالا بصورت زیر است :

Sum of the two numbers 10 and 20 is : 30

نکته : یک آرگومان (argument) مقداری است که به یک تابع پاس داده می شود, و یک پارامتر متغیری است که داخل تابع , آرگومان را دریافت می کند. به هر حال, این اصطلاحات به جای هم نیز استفاده می شود.

 

توابع با پارامترهای اختیاری و مقادیر پیش فرض

همچنین می توانید یک تابع با پارامترهای اختیاری تعریف کنید. برای اینکار کافیست که در ادامه نام پارامتر یک علامت = به همراه مقدار پیش فرض آن را قرار بدید :

همانطور که می بینید, سومین فراخوانی تابع customFont() هیچ آرگومان دومی ندارد. این باعث می شود که انجین PHP از مقدار پیش فرض پارامتر $size که ۱٫۵ می باشد استفاده کند.

 

برگشت دادن مقادیر از یک تابع

یک تابع می تواند مقدار تابع فراخوانی شده را با دستور return برگشت دهد. مقدار می تواند هر نوعی باشد از جمله آرایه و آبجکت ها.

یک تابع نمی تواند چندین مقدار را برگشت دهد. به هرحال می توانید همان نتیجه را با برگشت دادن آرایه بصورت زیر ایجاد کنید :

 

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

در بخش دوم کار با توابع بازگشتی, مفهوم scope , رفرنس آرگومان و… را یاد می گیریم.

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق باشید

حسن شفیعی علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. توصیه من: هاست میهن وب‎هاست
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۵)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. حسین صالحی ۲۶ مرداد ۱۳۹۸

    باسلام عرض خسته نباشیدخدمت استاد. من هرکاری کردم از دستورات.وکلماتی که در نوشتن php به کار برده میشه سردرنمیارم. مثلا حلقه ها و دتوابع وغیره …. که بعضی کدها در دسترس است. ولی تفاوت و مقایسه بعضی کلمات که هر کدنویسی یه جور کد مینویسه که با کد برنامه نویس شخص دیگرفرق داره حتی تعداد کدهای که مینویسند یکی طولانی و یکی کم حجم است.علت چیه؟ من میخوام php رو یادبگیرم ولی سردرگم هستم که از کجا شروع کنم لطفا کمکم کنید

    پاسخ
    1. حسن شفیعی ۲۷ مرداد ۱۳۹۸

      سلام. ممنون.
      اول شما باید طبق آموزش ها پیش برید و نحوه تعریف متغییر, توابع, حلقه ها و شرط و توابع مهم کار با رشته ها و غیره را یاد بگیرید.
      بعد از یادگیری این موارد باید مینی پروژه طراحی کنید مثلا ماشین حساب یا فرم دریافت اطلاعات از کاربر و این موارد.
      بعد از آن کار با یک دیتابیس مثل mysql و نحوه اتصال به آن با php را یاد بگیرید.
      بعد نحوه کدنویسی functional و شی گرایی و نهایتا mvc را یاد بگیرید تا بتونید منطق کدنویسی بقیه رو درک کنید چرا که صرفا یادگیری دستورات php کمکی در درک کدهای دیگران که کدنویسی آنها فرق داره, نمی کنه

      موفق باشید.

      پاسخ
      1. حسین صالحی ۲۷ مرداد ۱۳۹۸

        باسلام مجدد. شمادر اموزش های php متغییر, توابع, حلقه ها و شرط و توابع مهم کار با رشته ها و غیره رو نوشتید یادگرفتم .ولی برای من مبهمه که این کدها در کجای کدنویسی به درد میخوره وچه طوری وکجا ازاین دستورات استفاده کنم ونحوه تعریفشان چه طوری هست. ودرمورد نحوه کدنویسی functional و شی گرایی و نهایتا mvc کمی برام توضیح بدین که mvc چیه و…

        پاسخ
      2. حسن شفیعی ۲۷ مرداد ۱۳۹۸

        سلام. باید آموزش های پروژه محور و کاربردی رو ببینید تا با نحوه استفاده از این آموخته را عملی یاد بگیرید.
        آموزش های کاربردی در بخش آموزش php میتونید ببینید.
        آموزش mvc
        بقیه موارد رو باید در گوگل جستجو کنید تا به حواب برسید

        پاسخ
      3. حسین صالحی ۲۷ مرداد ۱۳۹۸

        خیلی سپاسگذارم از راهنماییتون

        پاسخ
دوره های آموزشی