یسری چیزا توی 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
امیدوارم به دردمون بخوره 🙂
آقا عالی!