php动态获取函数参数

PHP 在用户自定义函数中支持可变数量的参数列表。其实很简单,只需使用 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 ( ‘a‘ ,  ‘b‘ ,  ‘c‘ );

运行结果

参数个数为: 3

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

array func_get_args  ( void )

示例

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

运行结果

传入的参数分别为:
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  )

示例

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

运行结果

参数个数为: 3
第二个参数为: b
时间: 2024-08-04 14:21:04

php动态获取函数参数的相关文章

动态获取函数的参数

之前项目需求,需要动态的获取函数的参数,查阅一些资料后,发现可以通过函数签名(signature)来实现,记录下做个备忘. 首先需要了解函数参数的类型,目前常用的参数类型主要有4种:POSITIONAL_OR_KEYWORD.VAR_POSITIONAL.VAR_KEYWORD.KEYWORD_ONLY 参数类型为VAR_POSITIONAL时,只能通过位置传值,如 def say_hello(*args): print('hello {0}'.format(args)) # 通过位置传值 sa

php -- 获取函数参数

----- 015-parameter.php ----- 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="content-type" content="text/html; charset=utf-8"> 5 <title>获取函数参数</title> 6 </head> 7 <body> 8 <h3

能否在函数内动态获取函数名称 ?(亲测,居然真的可以)

C++ 可以用宏定义 __FUNCTION__ 或__func__ 获取所在的函数.方便调试. #define LOG(fmt, args...) printf("%s:"fmt,__FUNCTION__,##args) Delphi是否也能呢 ?Delphi 如何动态获取函数名称,而不是每个函数log都打一遍函数名. C++ Builder 是否像 C++ 也提供这种支持 ? 可以通过一些调试信息获取,请研究jclDebug.ProcByLevel 32 位系统不错.64 位系统的获

动态获取页面参数内容

本文章主要内容为动态的获取页面内容,在地址栏后面输入参数进行相加,最终将结果返回给用户,如: http://i.cnblogs.com/add?i=1&j=2,?前面的为处理程序路径,?后面的为请求的参数,以&分割多个参数,注意这是HTTP协议格式,一种规范,一种标准 static void Main(string[] args) { Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream

php - 获取函数参数的个数以及自定义打印函数

通常用来测试打印出多个参数时使用 function echo_para($split,$a,$b=0,$c=0,$d=0,$e=0,$f=0,$g=0,$h=0,$i=0,$j=0,$k=0,$l=0,$m=0,$n=0) { //获取参数总数 $n = func_num_args(); $str = ""; for($i = 1;$i< $n;$i++) { $str .= func_get_arg($i) . $split; } return $str; }

[ActionScript 3.0] AS3 获取函数参数个数

1 function createFunction(param1:String,param2:String,param3:int=0):void 2 { 3 trace(arguments.length);//arguments.length表示实参个数 4 } 5 trace(arguments.length);//输出0,说明arguments.length只在函数体内有效 6 trace(createFunction.length);//输出3,说明createFunction.lengt

字符串拼接,字符串里面有点击事件,点击事件里面有动态获取的参数

html='<select class="placeWidth fl" id="' + data.returnData[i].children[j].pfieldname + '_ss" onchange="refreshQList_sy(\' '+data.returnData[i].children[j].pfieldname+' \',\'110000000000\');zxs_sqxs(\' '+data.returnData[i].chil

使用Mono Cecil 动态获取运行时数据 (Atribute形式 进行注入) -摘自网络

目录 一:普通写法 二:注入定义 三:Weave函数 四:参数构造 五:业务编写 六:注入调用 一:普通写法 1 2 3 4 public static string GetPoint(int x, int y)  {     var value=x; } 哇 好简单啊.其实动态获取和我们普通这样写代码是一样的,我们把要注入的代码,生成一个接收的变量就可以了. 就像上面value 一样接收,然后传递给我们自己函数就可以了. 二 :注入定义 public class WeaveService :

日志系统实战(二)-AOP动态获取运行时数据

介绍 这篇距上一篇已经拖3个月之久了,批评自己下. 通过前面一篇介绍.我们通过mono反射代码,可以拿出编译好的静态数据.例如方法参数信息之类的.但实际情况是:我更需要运行时的数据,就是用户输入等外界的动态数据. 既然是动态的,那就是未知的.我们怎么通过提前注入的代码获取呢? 其实这是一个思路的问题,下面我们具体细看下. 实现 一 普通写法 public static string GetPoint(int x, int y) { var value=x; } 哇 好简单啊.其实动态获取和我们普