Php func_get_arg()和

Php func_get_arg()和,php,function,arguments,Php,Function,Arguments,这两段代码在PHP中分别有什么不同 function eat_apple($apple) { return true; } 以及: 还是有区别?如果没有,func_get_arg()有什么意义?当然,它有一些我不知道的用途?(并且)使函数有可能具有数量可变的参数,即所谓的 以需要合并的可变数量的数组为例。(和)使函数具有可变数量的参数成为可能,即所谓的 以需要合并的数组数目可变为例。我能想到的另一个可能原因是避免了致命错误 你有一个功能: <?php function displ

这两段代码在PHP中分别有什么不同

function eat_apple($apple)
{
    return true;
}
以及:

还是有区别?如果没有,func_get_arg()有什么意义?当然,它有一些我不知道的用途?

(并且)使函数有可能具有数量可变的参数,即所谓的

以需要合并的可变数量的数组为例。

(和)使函数具有可变数量的参数成为可能,即所谓的


以需要合并的数组数目可变为例。

我能想到的另一个可能原因是避免了致命错误

你有一个功能:

<?php
function display ($a, $b, $c) {
    echo $a . " is " . $b . " " . $c;
}
?>

你可以打电话

<?php
display ("Rock", "good", "boy");
- this will not throw any error.

display ("Rock", "good");
- this will throw fatal error.
?>


因此,现在考虑第二个调用,您可以避免致命错误,查看使用
func\u get\u args
传递了多少参数,并使用
func\u get\u arg(1)
等处理代码。

我可以想到的另一个可能原因是避免致命错误

你有一个功能:

<?php
function display ($a, $b, $c) {
    echo $a . " is " . $b . " " . $c;
}
?>

你可以打电话

<?php
display ("Rock", "good", "boy");
- this will not throw any error.

display ("Rock", "good");
- this will throw fatal error.
?>

因此,现在考虑第二个调用,您可以避免致命错误,查看使用
func\u get\u args
传递了多少个参数,并使用
func\u get\u arg(1)
等处理代码。

几个原因:
  • 您可以使用这种魔力来模拟重载
  • 您可以编写函数(如
    printf
    ),该函数可以接受数量不确定的参数
  • 第一个例子: 这将发出警告。如果在函数中使用
    func\u get\u args()
    获取相关参数,则不会引发警告

    第二个例子: 有几个原因:
  • 您可以使用这种魔力来模拟重载
  • 您可以编写函数(如
    printf
    ),该函数可以接受数量不确定的参数
  • 第一个例子: 这将发出警告。如果在函数中使用
    func\u get\u args()
    获取相关参数,则不会引发警告

    第二个例子:
    事实上,两者没有太大区别,标准传递参数通常比
    func\u get\u arg()
    更可取

    有两种情况下,您可能希望使用
    func\u get\u arg()
    ,而不是使用定义的参数:

  • 如果您想拥有无限数量的参数。通常,使用单个数组参数会更好,但有时您可能希望允许不受限制的参数。PHP内置的
    printf
    函数就是这样一个函数的实例

  • 在复杂函数中,给定的参数数量可能会改变参数的用途和/或其数据类型。例如,传递一个参数可能会导致函数需要一个字符串,而传递两个参数可能需要一个整数,然后是字符串。我想不出任何这样的例子,但我相当肯定有一些。通常,我会说这种行为是一种不好的做法,但我可以看出,在保持向后兼容性的同时,它对于添加特性是多么有用

  • 如果使用
    fung\u get\u arg()
    而不是标准函数参数,您肯定会失去两件事:

  • 通过引用传递的能力

  • IDE执行任何类型提示或自动完成的功能


  • 事实上,两者没有太大区别,标准传递参数通常比
    func\u get\u arg()
    更可取

    有两种情况下,您可能希望使用
    func\u get\u arg()
    ,而不是使用定义的参数:

  • 如果您想拥有无限数量的参数。通常,使用单个数组参数会更好,但有时您可能希望允许不受限制的参数。PHP内置的
    printf
    函数就是这样一个函数的实例

  • 在复杂函数中,给定的参数数量可能会改变参数的用途和/或其数据类型。例如,传递一个参数可能会导致函数需要一个字符串,而传递两个参数可能需要一个整数,然后是字符串。我想不出任何这样的例子,但我相当肯定有一些。通常,我会说这种行为是一种不好的做法,但我可以看出,在保持向后兼容性的同时,它对于添加特性是多么有用

  • 如果使用
    fung\u get\u arg()
    而不是标准函数参数,您肯定会失去两件事:

  • 通过引用传递的能力

  • IDE执行任何类型提示或自动完成的功能

  • 你好。这两段代码在PHP中分别有什么不同

    function eat_apple($apple)
    {
        return true;
    }
    

    func_get_arg()的作用是什么?它肯定有我不知道的作用吗

    官方声明的目的是:

    从参数列表中返回一项

    --

    你好。这两段代码在PHP中分别有什么不同

    function eat_apple($apple)
    {
        return true;
    }
    

    func_get_arg()的作用是什么?它肯定有我不知道的作用吗

    官方声明的目的是:

    从参数列表中返回一项

    --


    可能的重复与func_get_arg()系列函数的不同版本之间的差异有关。这不适用于我的问题。通过查看函数签名不是很明显吗?第一是说实话。另一个是谎言。除此之外,使用
    func\u get\u arg
    的原因在:*允许用户定义函数接受可变长度参数列表中给出*po