isset()
PHPが複数の (制限なしの) 引数を受け入れる方法を知っていますか?
私ができるように:
isset($var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$var11);
//etc etc
どうすれば自分の関数でそれを行うことができますか? 渡された無限引数をどのように扱うことができますか?
どうやってやっているの?
isset()
PHPが複数の (制限なしの) 引数を受け入れる方法を知っていますか?
私ができるように:
isset($var1,$var2,$var3,$var4,$var5,$var6,$var7,$var8,$var9,$var10,$var11);
//etc etc
どうすれば自分の関数でそれを行うことができますか? 渡された無限引数をどのように扱うことができますか?
どうやってやっているの?
func_get_args
あなたが望むことをします:
function infinite_parameters() {
foreach (func_get_args() as $param) {
echo "Param is $param" . PHP_EOL;
}
}
特定のパラメーターを取得するために使用することもできfunc_get_arg
ます (インデックスはゼロです)。
function infinite_parameters() {
echo func_get_arg(2);
}
ただし、そのパラメーターがあることを確認するように注意してください。
function infinite_parameters() {
if (func_num_args() < 3) {
throw new BadFunctionCallException("Not enough parameters!");
}
}
func_*_arg
通常のパラメーターと組み合わせることもできます。
function foo($param1, $param2) {
echo $param1; // Works as normal
echo func_get_arg(0); // Gets $param1
if (func_num_args() >= 3) {
echo func_get_arg(2);
}
}
ただし、それを使用する前に、本当に不定のパラメーターが必要かどうかを考えてください。配列では十分ではないでしょうか?
を使用できfunc_get_args()
ます。引数の配列が返されます。
function work_with_arguments() {
echo implode(", ", func_get_args());
}
work_with_arguments("Hello", "World");
//Outputs: Hello, World
関数内で呼び出すfunc_get_args()
と、PHP に渡された引数の配列が返されます。