Функцию можно вызвать с переменным числом параметров. Число аргументов и сами аргументы можно получить при помощи встроенных функций func_num_args, func_get_arg, func_get_args.
Пример:
<?php
// пример функции без явно определенных параметров
function args_example ()
{
$cnt = func_num_args();
// получили число аргументов
for( $i=0; $i < $cnt; $i++ )
{
$var1 = func_get_arg( $i );
// выводим значение i-го параметра
echo $var1;
}
// тоже самое только с помощью другой функции
$arr_args = func_get_args();
// получаем массив параметров
foreach( $arr_args as $par )
{
echo $par;
}
}
// выведем на экран 2 раза 2 параметра
args_example ( "Иванов", "Петров" );
?>
Возвращаемое значение
Конструкция return в теле функции может отсутствовать. В этом случае функция возвращает NULL. Функция может возвращать значение любого типа, можно, например, вернуть массив. Нельзя возвращать ссылки на локальные переменные, определенные в теле функции.
Пример:
<?php
function null_example ( $par1 )
{
if( $par1 == 1 )
{
return true;
}
}
$var1 = null_example ( 1 ); // $var1 содержит true
$var1 = null_example ( 2 ); // $var1 содержит NULL
// функция вернет массив
function retarr_example ()
{
$arr = array( 0 => "Иванов", 1 => "Петров" );
return $arr;
}
$var_array = retarr_example (); // вернем массив
// выведем значения элементов
foreach ( $var_array as $v )
{
echo $v;
}
?>