سلام دوستان عزیز ، امیدوارم که سلامت باشین.بااموزش امروزماکهدرمورد تابع ها در php هست همراه بمانید .توابع PHP شباهت زیادی به زبان های برنامه نویسی دیگر دارند. تابع یک قطعه کد {code} است که یک ورودی دیگر به شکل }پارامترparameter { دریافت می کند، کمی پردازش روی آن انجام می دهد و سپس value {مقدار} را {در نتیجه ی فرآیند} برمی گرداند.

تا حالا نوع عملکرد تابع هایی مانند fopen() و fread() را مشاهده کرده و با آن آشنا شده اید. این دو جز تابع های داخلی PHP هستند، ولی PHP به شما اجازه می دهد تابع های خود را پدید آورید.

به وجود آوردن تابع PHP

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

در حقیقت شما نیازی به ساختن توابعPHP ندارید زیرا PHP بیش از ۱۰۰۰ تابع در library آماده و تنظیم شده برای نواحی و کارکردهای مختلف دارد و شما کافی است بسته به نیازتان فقط آن را فرا بخوانید.

ساختن تابع های PHP

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

توجه داشته باشید هنگام به وجود آوردن یک تابع، اسم آن حتما باید با کلید واژه ی تابع آغاز شود و تمام کدهای PHP باید داخل علامت {} آکولاد قرار گیرد، همان طور که در مثال زیر نمایش داده شده.

‎‎‎

‎‎

‎ ‎

‎‎

‎‎

‎ ‎

‎ ‎

‎‎

‎‎

این پروسه نتیجه ی زیر را نشان می دهد.

You are really a nice person، Have a nice time!

تابع های PHPبه همراه parameter ها

PHP به شما اجازه می دهد پارامترهای خود را به داخل فانکشن ارسال {pass} پاس کنید. هر تعداد دلخواه پارامتر را می توانید در داخل فانکشن قرار دهید. این پارامترها درست مثل متغیرها در داخل فانکشن عمل می کنند. مثال زیر integer parameter را به هم اضافه کرده و در کنار هم قرار می دهد سپس آن را پرینت می گیرد.

‎‎

‎‎

‎ ‎

‎‎

‎‎

‎ ‎

‎ ‎

‎‎

‎‎

نتیجه ی زیر حاصل می گردد.

Sum of the two numbers is : 30

ارسال {pass} آرگومان ها {argument} با ارجاعات {reference}

در فراخوانی با ارجاع (Call By Refrence) تغییرات در متغیرها در تابع صدا زده شده روی اصل مقادیر تابع فراخوان تاثیر می گذارد.

هر تغییر وارد آمده بر آرگومان در این موارد منجر به تغییر مقدار اصلی می شود. می توان با اضافه کردن یک & (ampersand) به اسم متغیر {variable name} در هر یک از عملکرد های {تابع call}= فراخوانی تابع یا تعریف تابع {تابع definition} یک آرگومان را با reference یا ارجاع، {pass} ارسال کنید.

مثال زیر هر دو نمونه را نمایش می دهد.

‎‎

‎‎

‎ ‎

‎‎

‎‎

‎ <?php‎

‎ ‎تابع‎ addFive($num)‎

‎ {‎

‎ $num += 5;‎

‎ }‎

‎ ‎

‎ ‎تابع‎ addSix(&$num)‎

‎ {‎

‎ $num += 6;‎

‎ }‎

‎ $orignum = 10;‎

‎ addFive( &$orignum );‎

‎ echo "Original Value is $orignum
“;‎

‎ addSix( $orignum );‎

‎ echo “Original Value is $orignum
“;‎

‎ ?>‎

‎‎

‎‎

این نتیجه ی پروسه ی بالا است.

Original Value is 15

Original Value is 21

توابع PHP مقدار {value} را برمی گردانند.

تابع می تواند با کمک دستور return همراه با یک value یا object مقدار مورد نظر را بر گرداند.return فرایند اجرای تابع را متوقف می کند و سپس مقدار را به calling code {کد فراخوانی} برمی گرداند.

با return array(1,2,3,4) می توانید بیش از یک value از تابع دریافت کنید.

مثال زیر دو integer parameter را به هم اضافه می کند و در کنار هم قرار می دهد سپس نتیجه نهایی، حاصل جمع {sum} را به calling program {برنامه فراخوانی} برمی گرداند. توجه داشته باشید کلیدواژه ی return مقدار {value} را از یک تابع می گیرد.

‎‎

‎‎

‎ ‎

‎‎

‎‎

‎ ‎

‎ ‎

‎‎

‎‎

نتیجه ی زیر حاصل می گردد.

Returned value from the تابع : ۳۰

کار گذاشتن گزینه ی {default value} مقدار پیش فرض برای پارامترهای تابع

در صورتی که تابع فراخوان، مقدار را ارسال نکرد، باید پارامتر را روی {default value} مقدار پیش فرض تنظیم کنید.

تابع زیر به دلیل این که هیچ مقداری به آن فرستاده نشده، null را پرینت می کند.

‎‎

‎‎

‎ ‎

‎‎

‎‎

‎ ‎

‎ ‎

‎ ‎

‎‎

‎‎

نتیجه ی زیر حاصل می گردد.

This is test

تابع های فراخوان پویا {dynamic fuction caller}

می توان اسم تابع ها {name function} را به عنوان رشته {string} به متغیر ها {variables} اختصاص داد و سپس با این متغیر ها مانند همان تابع name برخورد کرد. مثال زیر همین رفتار را نشان می دهد.

‎‎

‎‎

‎ ‎

‎‎

‎‎

‎ <?php‎

‎ ‎تابع‎ sayHello()‎

‎ {‎

‎ echo "Hello
“;‎

‎ }‎

‎ $‎تابع‎_holder = “sayHello”;‎

‎ $‎تابع‎_holder();‎

‎ ?>‎

‎‎

‎‎

نتیجه ی زیر حاصل می گردد.

Hello