توابع func_get_args و …$args در PHP

یسری چیزا توی PHP هست که توی کورس های مختلف نمیبینیمشون ولی اگه بدونیم بعضی جاها خیلی به دردمون میخوره. این تابعی که معرفی میکنم رو خودم امروز دیدم و البته شاید یکم دیره برای دیدن این تابع چون جدیدن یه تابع دیگه هم توی ورژن جدید پی اچ پی اومده که همین کار رو میکنه تقریبا. اولی تابع func_get_args() هست که اگه کالش کنیم ورودی های تابع رو توی یه آرایه بهمون تحویل میده. کد و خروجیش رو ببینید قطعا خیلی راحت متوجه میشید:

<?php

function test() {
    return func_get_args();
}

var_dump(test("First arg", "Second arg"));

خروجی کد بالا بصورت زیر هست:

array(2) {
  [۰]=>
  string(9) "First arg"
  [۱]=>
  string(10) "Second arg"
}

یه تابع دیگه که مشابه همین تابع هست بدون s آخرش و بصورت func_get_arg() هست که یه ورودی عددی میگیره و آرگومان اون ایندکس رو برمیگردونه. تابع func_num_args() هم تعداد آرگومان های ورودی تابع رو برمیگردونه.

یک نمونه ی استفاده از داینامیگ آرگومان ها رو در زیر میبینید:

<?php
function average(){
    return array_sum(func_get_args())/func_num_args();
}
echo average(10, 15, 20, 25); // 17.5

روش دوم برای گرفتن آرگومان های با تعداد متغیر در PHP استفاده از سینتکس … هست که یک نمونه از استفاده ی اون رو در زیر میبینید:

<?php
function sum(...$numbers) {
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4); // 10

امیدوارم به دردمون بخوره 🙂

1 دیدگاه دربارهٔ «توابع func_get_args و …$args در PHP»

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *