ホームページ >バックエンド開発 >PHPチュートリアル >PHPで関数パラメータを動的に取得する方法

PHPで関数パラメータを動的に取得する方法

不言
不言オリジナル
2018-04-09 14:21:482079ブラウズ

この記事では主にPHPで関数のパラメータを動的に取得する方法を紹介しますので、必要な方は参考にしてください

この記事の例はPHPで関数のパラメータを動的に取得する方法を説明しています。参考のために皆さんと共有してください。詳細は次のとおりです:

PHP は、ユーザー定義関数の可変数のパラメーター リストをサポートしています。実際には非常に簡単で、 func_num_args()func_get_arg() 、および func_get_args() 関数を使用するだけです。 func_num_args()func_get_arg() ,和 func_get_args()  函数即可。

可变参数并不需要特别的语法,参数列表仍按函数定义的方式传递给函数,并按通常的方式使用这些参数。

1. func_num_args — 返回传入函数的参数总个数

int func_num_args ( void )

示例


<?php
function demo ()
{
  $numargs = func_num_args ();
  echo "参数个数为: $numargs \n" ;
}
demo ( &#39;a&#39; , &#39;b&#39; , &#39;c&#39; );


运行结果

参数个数为: 3

2. func_get_args — 返回传入函数的参数列表

array func_get_args  ( void )

示例


<?php
function demo ()
{
  $args = func_get_args();
  echo "传入的参数分别为:";
  var_dump($args);
}
demo ( &#39;a&#39; , &#39;b&#39; , &#39;c&#39; );


运行结果

传入的参数分别为:
array (size=3)
  0 => string 'a' (length=1)
  1 => string 'b' (length=1)
  2 => string 'c' (length=1)

3. func_get_arg — 根据参数索引从参数列表返回参数值

mixed  func_get_arg  ( int $arg_num  )

変数パラメーターには特別な構文は必要ありません。パラメーター リストは関数で定義されたとおりに関数に渡され、これらのパラメーターは通常の方法で使用されます。

1. func_num_args — 関数に渡されるパラメータの合計数を返します


int func_num_args ( void )


<?php
function demo ()
{
  $numargs = func_num_args ();
  echo "参数个数为: $numargs <br />" ;
  $args = func_get_args();
  if ( $numargs >= 2 ) {
    echo "第二个参数为: " . func_get_arg ( 1 ) . "<br />" ;
  }
}
demo ( &#39;a&#39; , &#39;b&#39; , &#39;c&#39; );


実行結果


パラメータの数は: 3


2. — 戻り値 関数のパラメータ リストを入力します🎜🎜array func_get_args (void)🎜🎜Example🎜🎜🎜🎜rrreee🎜🎜🎜🎜実行結果🎜🎜🎜渡されるパラメータはそれぞれ:🎜array (size=3)🎜 0 => string 'a' (length=1)🎜 1 => string 'b' (length=1)🎜 2 => (length=1) 🎜🎜🎜3. func_get_arg — パラメータ インデックスに従ってパラメータ リストからパラメータ値を返す🎜🎜 mixed func_get_arg ( int $arg_num )🎜🎜例🎜🎜🎜🎜rrreee🎜🎜🎜🎜実行結果🎜🎜🎜パラメータの数は: 3🎜2番目のパラメータは: b🎜🎜🎜🎜🎜🎜 🎜 🎜

以上がPHPで関数パラメータを動的に取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。