ユーザー定義関数は、可変長引数をサポートしている。可変長引数とは、引数が、2個だったり、5個だったり、個数が定まっていないこと。
可変長引数の取得には、func_get_args()、func_get_arg()、func_num_args()などの組み込み関数を使う。
func_get_args()
: ユーザー定義関数の引数リストを、配列として返す。func_get_arg()
: ユーザー定義関数の引数リストから、指定したインデックスの引数の値をひとつ返す。func_num_args()
: ユーザー定義関数に渡した引数の数を返す。
サンプル
func_get_args()
<?php
function sample() {
$args = func_get_args();
foreach ( $args as $arg ) {
$sum += $arg;
}
echo "<p>合計: {$sum}</p>";
}
sample( 1 );
sample( 1, 2 );
sample( 1, 2, 3 );
sample( 1, 2, 3, 4 );
sample( 1, 2, 3, 4, 5 );
?>
function sample() {
$args = func_get_args();
foreach ( $args as $arg ) {
$sum += $arg;
}
echo "<p>合計: {$sum}</p>";
}
sample( 1 );
sample( 1, 2 );
sample( 1, 2, 3 );
sample( 1, 2, 3, 4 );
sample( 1, 2, 3, 4, 5 );
?>
↓↓↓出力結果↓↓↓
合計: 1
合計: 3
合計: 6
合計: 10
合計: 15
合計: 3
合計: 6
合計: 10
合計: 15
func_get_arg()
<?php
function sample() {
$args = func_get_arg( 3 );
echo "<p>インデックスが3の引数の値: {$args}</p>";
}
sample( 1, 2, 3, 4, 5 );
?>
function sample() {
$args = func_get_arg( 3 );
echo "<p>インデックスが3の引数の値: {$args}</p>";
}
sample( 1, 2, 3, 4, 5 );
?>
↓↓↓出力結果↓↓↓
インデックスが3の引数の値: 4
func_num_args()
<?php
function sample() {
$args = func_num_args();
echo "<p>引数の数: {$args}</p>";
}
sample( 1, 2, 3, 4, 5 );
?>
function sample() {
$args = func_num_args();
echo "<p>引数の数: {$args}</p>";
}
sample( 1, 2, 3, 4, 5 );
?>
↓↓↓出力結果↓↓↓
引数の数: 5