func_get_arg() - php 选项信息函数
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.0 | If 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()例子
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
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!