• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

php中如何动态获取函数的参数

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一、总结

一句话总结:a、PHP 在用户自定义函数中支持可变数量的参数列表。其实很简单,只需使用 func_num_args() , func_get_arg() ,和 func_get_args()  函数即可。

 

1 <?php
2 function  demo ()
3 {
4     $numargs  =  func_num_args ();
5     echo  "参数个数为:  $numargs \n" ;
6 }
7 demo ( 'a' ,  'b' ,  'c' );

 

 

b、感觉默认参数也可以实现相同的功能

 1 //用于给用户的某种属性增加或者减少值(最后一个数组参数可用于传递数组数据)
 2 public function operateUserAttr($muid,$attrName=null,$num=null,$paramArr=null){

 

 

1、php动态获取函数参数的函数func_num_args() , func_get_arg() ,和 func_get_args()分别代表什么意思

a、func_num_args():获取参数数量

    $numargs  =  func_num_args ();
    echo  "参数个数为:  $numargs \n" ;

 

b、func_get_arg():获取哪个参数

 

echo  "第二个参数为: "  .  func_get_arg ( 1 ) .  "<br />" ;

 

 

c、func_get_args():获取所有参数

    echo "传入的参数分别为:";
    var_dump($args);

 

2、如何学习更简便实用的php动态获取函数参数?

可以去看thinkphp的框架的源码,尤其是数据库那一块,那里说的很清楚。

 

 

二、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

 

参考:php动态获取函数参数 - 雪山飞猪 - 博客园
https://www.cnblogs.com/chenqionghe/p/4817275.html

 

三、用函数默认参数实现php动态支持函数参数

用默认参数,如果调用函数的时候传递的是非数组参数,就用非数组的方式传入参数,否则用数组的方式传入参数

 1 //用于给用户的某种属性增加或者减少值(最后一个数组参数可用于传递数组数据)
 2 public function operateUserAttr($muid,$attrName=null,$num=null,$paramArr=null){
 3     $user=$this->getUserById($muid);
 4     if($attrName&&$num){
 5         $user[$attrName]+=$num;
 6     }else if($paramArr){
 7         //传入参数为数组的情况
 8         foreach ($paramArr as $key=>$val){
 9             $user[$key]+=$val;
10         }
11     }
12     $ans=db('myself_user')->update($user);
13     if($ans===false) return false;
14     else return true;
15 }

 

调用

1 //4、测试用户模型的增加属性方法
2 public function test3(){
3     $modelUser=new ModelUser();
4     $muid=base64_decode(session('muid'));
5     $ans=$modelUser->operateUserAttr($muid,null,null,['mu_programme'=>10,'mu_luck'=>20]);
6 }

 

 

 

 

 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
phpstr_replace替换特殊字符发布时间:2022-07-10
下一篇:
PHP_INT_SIZE发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap