ايجاد توابع مي توانند در صرفه جويي در زمان به ما كمك كند. همچنين ايجاد توابع يك قدم بزرگ در مسير ايجاد برنامه هاي كاربردي وب مي‌باشد. مي‌توانيم كد هاي PHP خود را با استفاده از توابع در پروژه‌ها و اسكريپت هاي مختلف به كار ببريم.

در اين فصل، در ابتدا راجع به چگونگي يك تابع آشنا مي‌شويم توسط خودمان و نه توابع از پيش ساخته PHP سپس در ادامه نحوه ارسال اطلاعات به يك تابع، توضيح داده مي‌شود و همچنين اين كه چگونه مي‌توان يك مقدار را از تابع به اسكريپت باز گرداند و در پايان نيز توابع و متغير ها چگونه مي‌توانند با يكديگر كار كنند.

ايجاد و استفاده از توابع ساده

در هنگام برنامه نويسي بسياري اوقات متوجه مي شويم كه از يك دسته از دستورات به صورت مكرر استفاده مي‌كنيم مي توانيم براي صرفه جويي در زمان و راحت تر كردن برنامه نويسي اين دستورات را در يك تابع قرار دهيم. با هر بار فرا خواني تابع اين دستورات اجراء مي‌شوند.

براي ايجاد يك تابع بايد از قالب زير استفاده كنيم.

Function Function_Name ( ) {

Statement (s);

}

براي نامگذاري توابع از همان قواعد نامگذاري متغير ها استفاده مي‌شود، اما در ابتداي اين نام، علامت ($) dollar قرار نمي‌گيرد. در مورد توابع نيز پيشنهاد مي‌شود از نامهايي استفاده كنيم كه تا حدودي مشخص كننده عملي كه آن تابع انجام مي‌دهد، باشد مهم است كه در نام تابع از كاراكتر جاي خالي استفاده نكنيم (به جاي اين كاراكتر مي‌توانيد از (_) underscore استفاده كنيم.

در داخل محدوده دستورات (statement(s)) هر كد مجاز PHP را مي‌توانيم به كار بريم. براي مثال مي توانيم يك تابع ديگر را در ‌آن محدوده فراخواني كنيم همچنين محدوديتي در تعداد دستورات، نخواهيم داشت.

قالب (format) نمايش داده شده، در ابتداي اين قسمت، به صورت الزامي نمي‌باشد. تنها بايد توجه كنيم كه از عناصر ذكر شده، به ترتيب، استفاده كنيد. به عبارت ديگر، ابتداكلمه function ، را قرار دهيد، سپس بعد از يك فاصله خالي، نام تابع و … اما درهر صورت پيشنهاد مي شود كه قبل از هر يك از دستورات تابع، كمي فاصله خالي از كناره صفحه ايجاد كنيم.

براي فراخواني (Call) توابع از همان روشي كه در مورد توابع پيش ساخته به كار مي‌برديم استفاده مي‌كنيم. به عبارت ديگر كد زير باعث اجراي دستورات تابع مي‌شود (فرا خواني تابع):

FunctionName( );

 

نكات مهم اين قسمت اين است كه اگر بر روي سرويس دهنده PHP.3 نصب شده باشد، بايد قبل از فراخواني تابع ، آنرا ايجاد كرده باشيم . هر چند اين مورد در مورد PHP 4.0 الزامي نيست، ولي پيشنهاد مي‌شود، هميشه از اين روش استفاده شود.

php در نام توابع، نسبت به بزرگ يا كوچك بودن حروف حساس نمي‌باشد.

ايجاد و فراخواني توابعي كه به عنوان ورودي ، آرگومان دريافت مي‌كنند

هر چند قابليت ايجاد يك تابع ساده بسيار مفيد مي‌باشد، اما بسياري اوقات مي‌خواهيم مقاديري را به عنوان ورودي، به تابع ارسال كنيم. تا اين تابع بر روي آنها، عملياتي را انجام دهد. اين مقدار ورودي با نام آرگومان (argument) شناخته مي‌شود و محدوديتي براي تعداد آنها وجود ندارد. قبلا با تعدادي از توابعي كه آرگومان دريافت مي‌كردند، كار كرده ايم براي مثال تابع print () يك رشته را به عنوان آرگومان دريافت مي‌كند و آنرا به مرور گر كاربر، ارسال مي‌كند.

قالب كلي توابعي كه از آرگومان استفاده مي‌كنند، به صورت زير مي‌باشد:

Function FunctionName ($Argument1, $Argument2, etc.)

{

statement (s) ;

}

اين آرگومانها به صورت متغيرهايي هستند كه مقادير خود را به داخل تابع ارسال مي‌كنند. فراخواني اين توابع نيز بسيار شبيه به فراخواني توابع ديگر مي‌باشد، منتهي بايد توجه داشته باشيم كه مقادير لازم را به عنوان آرگومان به تابع ارسال كنيم. شما مي‌توانيد آرگومانها را يا به صورت متغير، يا به صورت مقاديري كه در داخل علامتهاي quotation قرار گرفته اند و يا به صورت تركيبي از اين دو به تابع ارسال كنيد:

FunctionName($ Variable1,$ Variable2, etc);

FunctionName(“value1” , “value2” , etc);

FunctionName($ Variable1, “value2”, etc);

در مورد اين تابع، بايد توجه داشته باشيد كه مقادير به همان ترتيبي كه به هنگام فراخواني تايپ شده اند، به آ‌رگومانهاي تابع نسبت داده مي‌شوند. فراخواني تابع، كمتر از تعداد آرگومانهاي تابع باشد (به عبارت بهتر براي بعضي آرگومانها، مقاديري را ارسال نكنيم) مقدار null به آرگومانهايي كه مقدار حقيقي دريافت نمي‌كنند ارسال مي‌شود. براي مثال اگر تابع داراي 4 آرگومان باشد و به هنگام فراخواني تنها 3 مقدار را به تابع ارسال كنيم آرگومان چهارم داراي مقدار null  خواهد شد.

ايجاد و استفاده از توابعي كه يك مقدار را باز مي گردانند

قدم بعدي براي توابع، توانايي بازگشت يك مقدار مي‌باشد. براي انجام اين كار دو مرحله لازم است . مرحله اول، استفاده از دستور return در داخل تابع مي‌باشد، و مرحله دوم، نسبت دادن مقدار بازگشتي به يك متغير در داخل بدنه اصلي صفحه مي‌باشد.  البته در همه مواقع مقدار بازگشتي را به يك متغير نسبت نمي‌دهيم، بلكه براي مثال، ممكن است بخواهيم اين مقدار را به صورت مستقيم، چاپ كنيم. قالب كلي توابعي كه علاوه بر دريافت يك آرگومان، يك مقدار را به باز مي‌گردانند، به صورت زير مي‌باشد:

Function FunctionName($Argument) {

Statement (s);

Return $Value;

}

نحوه استفاده از اين توابع، به صورت زير مي‌باشد:

$Value = FunctionName ($Variable);

توجه كنيد كه در اين دستور مقدار بازگشتي، به يك متغير نسبت داده شده است.