记录方法调用参数上下文arguments
分类:web前端

复制代码 代码如下:
 function jb51(){       
    print_r(func_get_args());  
    echo "
";  
    echo func_get_arg(1);  
    echo "
";  
    echo func_num_args();     
}  

今天用到这个几个内置函数,记录下以便返查
func_num_args()   返回调用函数的传入参数个数,类型是整型

PHP 函数call_user_func和call_user_func_array用法详解

 下面来和大家分享一下这个call_user_func_array和call_user_func函数的用法,另外附赠func_get_args()函数和func_num_args()函数,嘿嘿!! 

call_user_func函数是当需要动态调用函数时,才使用的,这个函数有两种用法:

第一种是调用孤独的函数:

 

 代码如下:<?php

function funa($b,$c)

{

    echo $b;

    echo $c;

}

call_user_func('funa', "111","222");

call_user_func('funa', "333","444");

//显示 111 222 333 444

//大家有没有发现,这个用法有点像javascript中的call方法,嘿嘿

?>

第二种是调用类内部的函数:

 代码如下:<?php

class a {

    function b()

    {

        $args = func_get_args();

        $num = func_num_args();

        print_r($args);

        echo $num;

    }

}

call_user_func(array("a", "b"),"111","222");

?>

上面这个例子,自己运行一下看看结果是什么吧~嘿嘿~提示一下func_get_args()函数是获取传入到函数中的参数,返回一个数组,func_num_args()函数获取传入函数中的参数的个数。

 

下面再来看看call_user_func_array函数

这个函数也是当需要动态调用函数时用到的,它的用法和call_user_func函数比较像,只是参数传入的是数组。

 

 代码如下:<?php

function a($b, $c)

{

    echo $b;

    echo $c; 

}

call_user_func_array('a', array("111", "222"));

//显示 111 222

?>

 

call_user_func_array函数也可以调用类内部的方法的

 代码如下:<?php

Class ClassA

{

    function bc($b, $c) {

 

        $bc = $b + $c;

        echo $bc;

    }

 

}

call_user_func_array(array(‘ClassA','bc'), array(“111″, “222″));

//显示 333

?>

 

下面再看一个动态调用函数的例子:

 代码如下:<?php

function otest1 ($a)

{

     echo( '一个参数' );

}

 

function otest2 ( $a, $b)

{

    echo( '二个参数' );

}

 

function otest3 ( $a ,$b,$c)

{

    echo( '三个啦' );

}

 

function otest (){

    $args = func_get_args();

    $num = func_num_args();

    call_user_func_array( 'otest'.$num, $args  );

}

otest("11");

otest("11","22");

otest("11","22","33");

?>

 

函数call_user_func和call_user_func_array用法详解 下面来和大家分享一下这个call_user_func_array和call_user_func函数的用法,另外附赠func_get_args()函数...

 

jb51("www","jb51","net");  
?>

func_get_arg()   返回指定的参数值

Atitit  记录方法调用参数上下文arguments

输出结果:

func_get_args()   返回全部参数的值,类型是数组

 

Array ( [0] => blog [1] => micxp [2] => com )
micxp
3

func_get_args
返回一个包含函数参数列表的数组

1.1. java  java8  新的对象Parameter LocalVariableTable 本地变量表 MethodParameters 方法参数表1

从上面的结果中我们就可以看出

描述

1.2. Js arguments1

func_get_args()     这个函数返回的是包含当前函数所有参数的一个数组
func_get_arg()       函数返回的是指定位置的参数的值
func_num_args()  这个函数返回的是当前函数的参数数量 返回的是数字

array func_get_args( void )
此函数返回一数组,数组的各个元素相当于是目前使用者定义函数的各个参数。如果是从函数定义的外面来呼叫此函数,则func_get_args()将会产生警告。

1.3. 1

func_get_arg
从函数参数列表返回指定参数

1.4. C#1

描述

2. Php的解决方案2

mixed func_get_arg( int arg_num )
传回定义函数的参数列表的第arg_num个参数,其参数从0开始。且函数定义的外面来呼叫此函数会产生警告;并且当arg_num大于函数实际传递的参数数目时亦会产生警告并返回FALSE。

2.1. func_num_args() 返回传递给该函数参数的个数  2


2.2. func_get_arg(int $arg_num) 取得指定位置的参数值 2

func_num_args
返回传递到函数的参数数目

2.3.  3、func_get_args() 返回包含所有参数的数组 2

描述

1.1. java  java8  新的对象Parameter LocalVariableTable 本地变量表 MethodParameters 方法参数表

int func_num_args( void )
此函数返回传递到目前定义函数的参数数目。如果是从函数定义的外面来呼叫此函数,则func_num_args()将会产生警告。

1.2. Js arguments

func_num_args()可以用来结合func_get_arg()和func_get_args(),来允许使用者定义的函数接受可变长度参数列表。在我们构建PHP类的时候,灵活使用这三个函数,可以起到非常理想的效果,例如外面在创建PHP和MYSQL链接的类时,可以书写如下代码:

1.3.  

 

1.4. C#

using System.Reflection;

...
Type t = typeof(类名称);
MethodInfo mi=t.GetMethod(函数名称);

mi.GetParameters().Count 就是函数的参数个数

 

 代码如下

2. Php的解决方案

<?php
class mydb{
private $user;
private $pass;
private $host;
private $db;
public function __construct(){
$num_args=func_num_args();
if($num_args>0){
$args=func_get_args();
$this->host=$args[0];
$this->user=$args[1];
$this->pass=$args[2];
this->connect();
}
}
……..
?>

2.1. func_num_args() 返回传递给该函数参数的个数 

下面是手册上的一个例子:

2.2. func_get_arg(int $arg_num) 取得指定位置的参数值

 

1. <?php  

2. function foo()  

3. {  

4.      $numargs = func_num_args();  

5.      echo $numargs;   //输出3  

6.      if ($numargs >= 2) {  

7.          echo func_get_arg(1); //输出2  

8.      }  

9. }  

10.   

11. foo (1, 2, 3);  

 代码如下

2.3.  3、func_get_args() 返回包含所有参数的数组 

[php] view plain copy 

1. <?php  

2. function foo()  

3. {  

4.     $numargs = func_get_args();  

5.     var_dump($numargs);   //输出 array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }   

6. }  

7.   

8.   

9. foo(1, 2, 3);     

10. ?>  

 

php函数中获取参数信息方法

  • 博客频道 - CSDN.NET.html

Java获取代码中方法参数名信息的方法_java_脚本之家.htm

Java获取代码中方法参数名信息的方法_java_脚本之家.htm

Java获取当前类名、方法名.html

 

作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 

汉字名:艾提拉(艾龙),   EMAIL:1466519819@qq.com

转载请注明来源: 

Atiend

 

 

<?php
function foo()
{
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br />n";
    if ($numargs >= 2) {
        echo "Second argument is: " . func_get_arg(1) . "<br />n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i is: " . $arg_list[$i] . "<br />n";
    }
}

foo(1, 2, 3);
?>

输出结果是:
Number of arguments: 3
Second argument is: 2
Argument 0 is: 1
Argument 1 is: 2
Argument 2 is: 3

本文由10bet手机官网发布于web前端,转载请注明出处:记录方法调用参数上下文arguments

上一篇:MySQL数据库自带备份与回复工具,教你怎么样火速的施用cmd访问mysql小技艺 下一篇:php生成员工编号,使用SnowFlake算法生成唯一ID
猜你喜欢
热门排行
精彩图文