akofaraji.ir
توابع در زبان PHP
نوشته شده در تاریخ 30 فروردین 1403
نظرات: 0 امتیاز: 6 زمان مطالعه: 13 دقیقه
 
 
توابع php
 
 

توابع در PHP 7

 

قدرت واقعی زبان PHP به خاطر تعداد توابع بالای آن است؛ این زبان بیش از 1000 تابع از پیش تعریف شده در اختیار شما قرار می دهد! با این حساب آشنایی با توابع PHP جزء جدا نشدنی یادگیری زبان PHP است و به همین خاطر در این قسمت با انواع جنبه های توابع در زبان PHP (مانند تعریف کردن توابع شخصی، آرگومان ها و …) آشنا خواهیم شد.

 

تعریف توابع شخصی

 

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

 

توابع php به خودی خود یا هنگام بارگذاری صفحه اجرا نمی شوند بلکه باید فراخوانی (call) شوند. برای تعریف یک تابع شخصی باید از کلیدواژه ی function و ساختار کلی زیر استفاده کنیم:

 

نام تابع می تواند با یک حرف انگلیسی یا علامت underscore (همان آندرلاین _) شروع شود اما نمی توانید آن را با یک عدد شروع کنید. باید نام هایی که برای تابع خود انتخاب می کنید توصیف گر باشند چرا که بعدا در کدهایتان گم می شوند و یادتان می رود هر تابع چه کاری می کرده است.

 

نام توابع case-sensitive نیستند بنابراین به بزرگی و کوچکی حروف حساس نیستند.
 

در مثال زیر تابعی به نام ()writeMsg تعریف کرده ایم. علامت } یعنی شروع کدهای تابع و علامت { یعنی پایان آن. تنها کاری که این تابع می کند نمایش عبارت !Hello world است. برای فراخوانی تابع نیز تنها کافی است که از علامت پرانتز استفاده کنید:

 

مشاهده ی خروجی

 

آرگومان ها (argument)

 

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

 

در مثال زیر یک تابع داریم که یک آرگومان (fname$) دارد. زمانی که تابع ()familyName فراخوانی شود باید یک نام هم به آن داده شود (به عنوان آرگومان) تا در کد های داخل استفاده شود:

 

مشاهده ی خروجی

 

در مثال زیر یک آرگومان دیگر (سال تولد) هم به تابع اضافه کرده ایم:

 

مشاهده ی خروجی

 

PHP از زبان های Loosely Typed

 

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

 

در PHP 7 قابلیت type declaration (تعیین نوع داده) معرفی شده است. بنابراین می توانید تعیین کنید که یک متغیر قرار است چه نوع داده ای بگیرد و اگر داده برخلاف نوع تعیین شده بود (در صورتی که حالت strict فعال باشد) دچار خطای Fatal Error می شویم.

 

در مثال زیر حالت strict را غیر فعال کرده ایم:

 

مشاهده ی خروجی

 

از آنجا که حالت strict غیرفعال است رشته ی “5 days” تبدیل به عدد 5 شده و نتیجه عدد 10 خواهد شد!

 

اما اگر حالت strict فعال باشد:

 

مشاهده ی خروجی

می بینید که با خطا مواجه شدیم.

اگر می خواهید strict را فعال کنید باید دستور ;(declare(strict_types=1 را در اولین خط فایل PHP بنویسید. این حالت بیان می کند که نوع داده ها باید دقیقا با حالت تعریف شده مطابقت داشته باشد. توجه داشته باشید که از این قسمت آموزش به بعد ما از حالت strict استفاده خواهیم کرد.

 

تعیین مقدار پیش فرض برای آرگومان ها

 

شما می توانید مقداری را به عنوان پیش فرض برای یک آرگومان تعریف کنید تا در صورتی که مقداری برای آن وارد نشد از مقدار پیش فرض استفاده شود. اگر تابع ()setHeight را در مثال زیر بدون آرگومان هایش صدا بزنیم، از مقدار پیش فرض استفاده می کند:

 

مشاهده ی خروجی

 

برگرداندن مقادیر

 

تا این قسمت تمام توابع ما مقادیر را مستقیما چاپ می کردند اما در دنیای واقعی چنین حالتی کمتر پیش می آید. در دنیای واقعی توابع مقادیر را برمی گردانند. یعنی مقداری را به عنوان آرگومان گرفته و پس از انجام پردازش مقدار جدیدی را به ما می دهند. سپس می توانیم هر کاری با این مقدار خواستیم انجام دهیم (نمایش، پردازش و …). اگر می خواهید مقدار یک تابع را برگردانید باید از دستور return استفاده کنید:

 

مشاهده ی خروجی

 

تعیین نوع داده ی برگشتی

 

PHP 7 برای دستور return نیز از قابلیت Type Declaration (تعیین نوع داده) پشتیبانی می کند. در این حالت هم اگر strict فعال باشد و داده ی برگشتی با نوع داده ای که ما تعیین کرده ایم یکی نباشد دچار Fatal Error خواهیم شد. برای انجام این کار قبل از باز شدن } و نوشتن کدهای تابع، از علامت دو نقطه (:) و ذکر نوع داده ی برگشتی استفاده کنید:

 

مشاهده ی خروجی

 

نیازی نیست که نوع داده ی برگشتی با نوع آرگومان ها یکی باشد اما مطمئن شوید که نوع داده ی خروجی را درست مشخص کرده اید:

 

مشاهده ی خروجی

 

منبع: سایت روکسو


اگر احساس می کنید این مطلب برای شما مفید بود ، از 1 تا 10 به این مطلب امتیاز دهید

دیدگاه کاربران در مورد این مطلب

ثبت نظر
به نظر خوب میاد!
لطفا نام را وارد کنید
@
لطفا یک ایمیل منحصر به فرد و معتبر انتخاب کنید.
لطفا متن با کلمات و معانی مفهوم دار وارد نمایید