آموزش PHP

آموزش PHP - توابع

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

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

دو بخش وجود دارد که باید برای شما روشن شود:

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

در واقع شما به سختی نیاز به ایجاد تابع PHP خود دارید، زیرا در حال حاضر بیش از 1000 تابع کتابخانه ساخته شده در منطقه مختلف وجود دارد و شما فقط باید آنها را با توجه به نیاز خود فراخوانی کنید.

لطفا برای مشاهده مجموعه کامل از توابع مفید  PHP به تابع مرجع PHP مراجعه کنید.

ایجاد تابع PHP

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

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

<html>
   
   <head>
      <title>Writing PHP Function</title>
   </head>
   
   <body>
      
      <?php
         /* Defining a PHP Function */
         function writeMessage() {
            echo "You are really a nice person, Have a nice time!";
         }
         
         /* Calling a PHP Function */
         writeMessage();
      ?>
      
   </body>
</html>

نتیجه زیر را نمایش می دهد:

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

 

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

PHP به شما امکان می دهد پارامترهای خود را درون یک تابع قرار دهید. شما می توانید پارامترهای مورد نظر خود را به هر تعدادی که می خواهید منتقل کنید. این پارامترها مانند متغیرهای داخل تابع شما کار می کنند. مثال زیر دو پارامتر عدد صحیح را می گیرد و آنها را با هم ترکیب می کند و سپس آنها را چاپ می نماید.

<html>
   
   <head>
      <title>Writing PHP Function with Parameters</title>
   </head>
   
   <body>
   
      <?php
         function addFunction($num1, $num2) {
            $sum = $num1 + $num2;
            echo "Sum of the two numbers is : $sum";
         }
         
         addFunction(10, 20);
      ?>
      
   </body>
</html>

نتیجه زیر را نمایش می دهد:

Sum of the two numbers is : 30

 

ارجاع دادن آرگومان به reference

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

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

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

<html>
   
   <head>
      <title>Passing Argument by Reference</title>
   </head>
   
   <body>
      
      <?php
         function addFive($num) {
            $num += 5;
         }
         
         function 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 10
Original Value is 16 

 

مقدار بازگشتی توابع PHP

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

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

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

<html>
   
   <head>
      <title>Writing PHP Function which returns value</title>
   </head>
   
   <body>
   
      <?php
         function addFunction($num1, $num2) {
            $sum = $num1 + $num2;
            return $sum;
         }
         $return_value = addFunction(10, 20);
         
         echo "Returned value from the function : $return_value";
      ?>
      
   </body>
</html>

نتیجه زیر را نمایش می دهد:

Returned value from the function : 30

 

تنظیم مقادیر پیش فرض برای پارامترهای تابع

می توانید یک پارامتر را برای یک مقدار پیش فرض تنظیم کنید، اگر فرخوانی تابع آنرا عبور ندهد. 

تابع زیر، در صورتی که هیچ مقداری برای این تابع استفاده نشود NULL را چاپ می کند.

<html>
   
   <head>
      <title>Writing PHP Function which returns value</title>
   </head>
   
   <body>
      
      <?php
         function printMe($param = NULL) {
            print $param;
         }
         
         printMe("This is test");
         printMe();
      ?>
      
   </body>
</html>

نتیجه زیر را تولید می کند:

This is test

 

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

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

<html>
   
   <head>
      <title>Dynamic Function Calls</title>
   </head>
   
   <body>
      
      <?php
         function sayHello() {
            echo "Hello<br />";
         }
         
         $function_holder = "sayHello";
         $function_holder();
      ?>
      
   </body>
</html>

نتیجه زیر را نمایش می دهد:

Hello
در صورتی که سوال و یا نظری دارید، از بخش نظرات با ما در میان بگذارید.

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

شما چه نظر و یا سوالی درباره این نوشته دارید؟

مبحث آموزشی

آموزش PHP

Learn PHP

سرفصل ها

پرســیدن سؤال جدید

سؤال های تخصصی خود را از ما بپرسید

دنبال کردن تلگرام کانال سافت اسکیل

https://telegram.me/softskill_ir

عملیات کاربران

خبـرنــامه

Newsletters

در خبــرنـامه سافت اسکیل عضو شویــد تا جدیدترین هـای سایت را بلافاصله در ایمیل خـود دریافت کنیـد

کلیک کنید و سوالات خود را از ما بپرسید
لطفا فرم سوال را پر کنید

سوال شما با موفقیت ثبت شد. برای اینکه بتوانیم به شما اطلاع رسانی کنیم، موارد زیر را وارد کنید:

لطفا چند لحظه منتظر بمانید ...