سلام کاربران گرامی ، حال شما خوبه ؟ امیدوارم که سلامت باشید و اموزش امروز ما در مورد  Function تابع در  php است امید است که براتون مفید واقع شود.

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

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

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

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

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

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

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

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

‎‎<html> 

<head>

   <title>Writing PHP ‎تابع‎</title>

</head>

<body>

‎ ‎

   <?php‎

‎   /* Defining a PHP ‎تابع‎ */‎

‎   ‎تابع‎ writeMessage()‎

‎   {‎

‎   echo “You are really a nice person، ‏‎ Have a nice time!”;‎

‎   }‎

‎   /* Calling a PHP ‎تابع‎ */‎

‎   writeMessage();‎

‎   ?>

</body>

</html>

 

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

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

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

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

<html>

<head>

   <title>Writing PHP ‎تابع‎ with Parameters</title>

</head>

<body>

‎ ‎

   <?php‎

‎   ‎تابع‎ addتابع‎($num1‎، ‏‎ $num2)‎

‎   {‎

‎   $sum = $num1 + $num2;‎

‎   echo “Sum of the two numbers is : $sum“;‎

‎   }‎

‎   addتابع‎(۱۰‎، ‏‎ ۲۰);‎

‎   ?>

</body>

</html>

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

Sum of the two numbers is : 30

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

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

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

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

<html>

<head>

   <title>Passing Argument by Reference</title>

</head>

<body>

   <?php‎

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

‎   {‎

‎   $num += 5;‎

‎   }‎

‎ ‎

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

‎   {‎

‎   $num += 6;‎

‎   }‎

‎   $orignum = 10;‎

‎   addFive( &$orignum );‎

‎   echo “Original Value is $orignum<br />”;‎

‎   addSix( $orignum );‎

‎   echo “Original Value is $orignum<br />”;‎

‎   ?>

</body>

</html>

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

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} را از یک تابع می گیرد.

<html>

<head>

   <title>Writing PHP ‎تابع‎ which returns value</title>

</head>

<body>

‎ ‎

   <?php‎

‎   ‎تابع‎ addتابع‎($num1‎، ‏‎ $num2)‎

‎   {‎

‎   $sum = $num1 + $num2;‎

‎   return $sum;‎

‎   }‎

‎   $return_value = add‎تابع‎(۱۰‎، ‏‎ ۲۰);‎

‎   echo “Returned value from the ‎تابع‎ : $return_value“;‎

‎   ?>

</body>

</html>

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

Returned value from the تابع : ۳۰

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

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

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

<html>

<head>

   <title>Writing PHP ‎تابع‎ which returns value</title>

</head>

<body>

‎ ‎

   <?php‎

‎   ‎تابع‎ printMe($param = NULL)‎

‎   {‎

‎   print $param;‎

‎   }‎

‎   printMe(“This is test”);‎

‎   printMe();‎

‎   ?>

‎ ‎

</body>

</html>

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

This is test

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

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

<html>

<head>

   <title>Dynamic ‎تابع‎ Calls</title>

</head>

<body>

   <?php‎

‎   ‎تابع‎ sayHello()‎

‎   {‎

‎   echo “Hello<br />”;‎

‎   }‎

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

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

‎   ?>

</body>

</html>

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

hello