百科狗-知识改变命运!
--

func_get_arg() - php 选项信息函数

是丫丫呀1年前 (2023-11-21)阅读数 15#技术干货
文章标签参数

func_get_arg()

(PHP 4, PHP 5, PHP 7)

返回参数列表的某一项

说明

func_get_arg(int $arg_num): mixed

从用户自定义函数的参数列表中获取某个指定的参数。

该函数可以配合func_get_args()和func_num_args()一起使用,从而使得用户自定义函数可以接受自定义个数的参数列表。

参数

$arg_num

参数的偏移量。函数的参数是从0开始计数的。

返回值

返回指定的参数,错误则返回FALSE

更新日志

版本说明
5.3.0该函数可以在参数列表中使用。
5.3.0If this function is called from the outermost scope of a file which has been included by callingincludeorrequirefrom within a function in the calling file, it now generates a warning and returnsFALSE.(不知道如何翻译跟好,直接参考例2即可明白)

错误/异常

当在自定义函数的外面调用的该函数的时候会发出一个警告,或者是当$arg_num比实际传入的参数的数目大的时候也会发出一个警告。

范例

Example #1func_get_arg()例子

func_get_arg() - php 选项信息函数

Example #2func_get_arg()PHP 5.3 前后对比的例子

test.php

fga.inc 

PHP 5.3 版本之前的输出:

'Second arg'

PHP 5.3 和之后的版本的输出:

Warning: func_get_arg():  Called from the global scope - no function
context in /home/torben/Desktop/code/ml/fga.inc on line 3
false

Example #3func_get_arg()example of byref and byval arguments

以上例程会输出:


As passed :'bar'
After change :'bar'
As passed :'bar'
After change :'baz'

注释

Note:

因为函数依赖于当前作用域以确定参数的细节,所以在5.3.0 以前的版本中不能用作函数的参数。如必须传递此值时,可将结果赋与一个变量,然后用此变量进行传递。Note:

如果参数以引用方式传递,函数对该参数的任何改变将在函数返回后保留。

Note:This function returns a copy of the passed arguments only, and does not account for default (non-passed) arguments.

参见

  • func_get_args() 返回一个包含函数参数列表的数组
  • func_num_args()Returns the number of arguments passed to the function
This functions seems so powerful... just when i saw it i thought about writing a fast average of n numbers function so here it is, it is very simple... example usage included. 
func_get_arg() returns a *copy* of the argument, to my knowledge there is no way to retrieve references to a variable number of arguments.
I have a module system in my game at http://lotgd.net where I'd like to be able to pass a variable number of arguments to functions in a module, and pass them by reference if the module asks for it by reference, but you can't accept optional parameters as references, nor can you retrieve the reference on a variable number of arguments. Looks like my modules will have to do with out the ability to accept parameters to their functions by reference.
func_get_arg() does not appear to be allowed to be used as a function argument itself within class constructors in PHP 5.0.2 (wonk-ay!!!):

The above script generates:
Fatal error: func_get_arg(): Can't be used as a function parameter in c:\Inetpub\wwwroot\phpwasrc\chapter10\xxx.php on line 23
There are, however, no problems when passing these as parameters to regular functions.
I actually think that there is need for such "do absolutely everything" functions. I use them mostly as tools for rapid prototyping.
And there is a method with which you may be able to pass several strings to a function: ereg();
Another use for such functions is to create little code snippets for other people out there. They won't have to edit the function any longer if they do not use a parameter. They just don't name it when calling the function.
This results in allrounder functions that are very robust in their use.Normally you just have a little code snippet (e.g. ip-blocking snippets). Through this type of programming you have whole functions.

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)