it زندگی با طعم

it زندگی با طعم


استیو جابز؛ پدر اپل جین جنینگز بارتیک؛از اولین زنان برنامه نویس جان مک کارتی؛ پدر هوش مصنوعی چارلز والتون ؛ پدر RFID
سه شنبه, ۵ خرداد ۱۳۹۴، ۱۰:۵۵ ق.ظ

توابع (Functions) در php

بحث توابع در هر زبان برنامه نویسی، معمولا جزء موارد لاینفک آن زبان محسوب می شود، چرا که برنامه نویسان همواره در پی یافتن کوتاه ترین راه حل ها با کم ترین کدنویسی و در عین حال رسیدن به مقصود خود به بهترین شکل ممکن هستند، به همین خاطر است که به جای نوشتن چندین و چندباره کدها، یک بار آنها را در قالب توابع تعریف کرده و بعد از آن، ورودی مورد نظر خود را هنگام فراخوانی به تابع داده و خروجی دریافت می کنند، در واقع، توابع نقش دستگاه های تسهیل کننده را برای یک برنامه نویس بازی می کنند، با این مقدمه کوتاه، می پردازیم به ادامه آموزش php با مبحث توابع (Functions).


تابع (Function) چیست و چه کاربردی دارد؟

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


شیوه نگارش (syntax) تابع در php

شیوه نگارش (syntax) توابع در php شباهت زیادی به دیگر زبان پرکاربرد وب، یعنی جاوا اسکریپت دارد، به مثال زیر توجه کنید.

<?php

//تعریف تابع

function test(){

    echo "این یک تابع در php است";

}

?>

توضیح:

- توابع در php با عبارت function تعریف می شوند.

- نام توابعی که تعریف می کنیم، معمولا می تواند عباراتی دلخواه باشد، اما انتخاب نام به صورت عددی یا دارای کارکترهای خاص، مجاز نیست.

- اگر تابع بالا را در هر جا از کد خود فراخوانی کنید، عبارت دستور echo به خروجی ارسال می شود.

فراخوانی تابع بالا می تواند به صورت زیر باشد:

<?php

//تعریف تابع

function test(){

    echo "این یک تابع در php است";

}

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

test();

?>

آرگومان (argument) تابع

اگر در مثال بالا دقت کرده باشید، پس از تعریف نام تابع، یک () قرار گرفته است، این علامت برای دریافت یک آرگومان (argument) است، شاید این واژه به ظاهر کمی غریب بیاید، اما آرگومان در اینجا چیزی نیست جزء همان ورودی که پیش تر بحث آن را مطرح کردیم، با تعیین آرگومان، این امکان را به تابع می دهیم که پردازش مورد نظر را بر روی یک ورودی انجام دهد، البته توابع با و بدون آرگومان قابل استفاده هستند که در ادامه، بیشتر با نحوه کاربرد آنها آشنا خواهیم شد، به مثال زیر توجه کنید.





<?php

//تعریف متغیر در بیرون تابع

$name = 'احمد';

//تعریف تابع

function getuser($name){

    if ($name == 'admin'){

        echo "مدیر سایت ، خوش آمدید";

    }

    else{

        echo "$name ، خوش آمدید";

    }

}

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

getuser($name);

?>

مثال بالا با توجه به اینکه متغیر فرضی name را به عنوان آرگومان بررسی می کند، خروجی زیر را چاپ خواهد کرد.

احمد ، خوش آمدید

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

مثال دیگر از تابع در php

در تابع زیر، به جای یک آرگومان و تعریف متغیر در بیرون آن، از دو آرگومان و مقادیر متغیر در هنگام فراخوانی تابع استفاده کرده ایم.

<?php

//تعریف تابع

function checkpage($name,$page){

    if ($name == 'admin'){

        echo "مدیر سایت ، به صفحه $page خوش آمدید";

    }

    else{

        echo "$name ، به صفحه $page خوش آمدید";

    }

}

//فراخوانی تابع با چند آرگومان

checkpage("admin",33);

?>

خروجی تابع بالا به صورت زیر خواهد بود.

مدیر سایت ، به صفحه 33 خوش آمدید

با کمی دقت، حتما خواهید توانست اتفاقاتی را که در مثال بالا روی داده، حدس بزنید.

تعریف توابع پیچیده در php

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

تابع محسابه معدل دانش آموزان:

<?php

//تعریف تابع

function avrage($marks){

    //محاسبه معدل    

    $marks = $marks / 20 . '&nbsp;';//تعداد کل دروس 20

    return $marks;

}

//مجموع نمرات 3 دانش آموز

$st1 = 344;

$st2 = 312;

$st3 = 298;

//فراخوانی تابع به صورت جداگانه برای هر دانش آموز

echo avrage($st1);

echo avrage($st2);

echo avrage($st3);

?>

توضیح:

- عبارت return، خروجی تابع را برای استفاده در ادامه کد به اصطلاح برمی گرداند، به عبارتی دیگر هنگامی که از return در یک تابع استفاده می کنیم، یعنی پردازش های مورد نظر ما به پایان رسیده و نتیجه به محلی که تابع از آنجا فراخوانی شده، فرستاده می شود، توجه داشته باشید که در تابع، با اجرای یک دستور return، سایر پردازش ها (یا سایر دستورات return) نادیده گرفته می شوند.

- خروجی مثال بالا اعداد 17.2 15.6 14.9 خواهند بود.

تابع محاسبه حاصل جمع و حاصل ضرب چند عدد:

<?php

//تعریف تابع

function calculator($numx,$numy,$numz){

    //حاصل جمع

    $total = $numx + $numy + $numz;

    //حاصل ضرب

    $multiple = $numx * $numy * $numz;

    //برگرداندن نتیجه تابع

    return ("حاصل جمع اعداد برابر $total و حاصل ضرب آنها برابر $multiple است");

}

//فراخوانی تابع به همراه آرگومان ها

echo calculator(20,31,68);

?>

خروجی تابع بالا به صورت [حاصل جمع اعداد برابر 119 و حاصل ضرب آنها برابر 42160 است] خواهد بود.

تابع نمایش حاصل یک عدد به توان 10:

<?php

//تعریف تابع

function exponent($num){

    //استفاده از حلقه for

    for ($i=0;$i<10;$i++){

        $exponent = $num;

        $num = $exponent * 2;

        echo $exponent . '&nbsp;';

    }

}

//فراخوانی تابع به همراه آرگومان

echo exponent(2);

?>

خروجی تابع بالا به صورت اعداد 2 4 8 16 32 64 128 256 512 1024 خواهد بود.

توابع درونی php

تا این مرحله از آموزش php و بحث توابع، دیدیم که چگونه می توان یک تابع را تعریف و از آن استفاده نمود، اما نکته جالب اینجاست که قدرت php از این هم فراتر است، چرا که توابعی به صورت از پیش تعریف شده (built in functions) در این زبان وجود دارند  که بدون حتی یک خط کدنویسی، مقصود مورد نظر ما را انجام می دهند، شمار این توابع چیزی بالغ بر 700 است، البته همه ی آنها ممکن است مورد استفاده قرار نگیرند اما تعداد به خصوصی، بسیار پر کاربرد هستند، برای دیدن لیست کاملی از توابع درونی، می توانید به سایت رسمی php در آدرس زیر مراجعه کنید.

http://www.php.net/manual/en/funcref.php

به مثال زیر توجه کنید.

<?php

//تعریف تابع

function replace($str){

    //تابع درونی str_replace

    $str = str_replace('کاربر','مدیر',$str);

    return $str;    

}

//فراخوانی تابع به همراه آرگومان

echo replace("سلام کاربر سایت، خوش آمدید");

?>

تابع درونی str_replace یکی از پرکاربردترین ها در php است، این تابع وجود یک عبارت را در رشته ارسالی بررسی کرده و اگر حاصل بررسی درست (true) بود، آن عبارت را با جایگزین آن، تعویض می کند، بر این اساس خروجی مثال بالا به صورت [سلام مدیر سایت، خوش آمدید] خواهد بود.

مثالی دیگر از به کار بردن توابع درونی در php:

<?php

//تعریف تابع

function lower($str){

    //تابع درونی strtolower

    $str = strtolower($str);

    return $str;    

}

//فراخوانی تابع به همراه آرگومان

echo lower("WELCOME TO PHP LEARNING");

?>

در مثال بالا از یکی دیگر از توابع درونی php به نام strtolower استفاده کرده ایم، این تابع حروف (انگلیسی) بزرگ را تبدیل به حروف کوچک می کند، بر این اساس خروجی مثال بالا به صورت [welcome to php learning] خواهد بود.

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

<?php

//فراخوانی تابع به همراه آرگومان

echo strtolower("WELCOME TO PHP LEARNING");

?>


منبع

موافقین ۰ مخالفین ۰ ۹۴/۰۳/۰۵
AS Moosavian