【问题标题】:What is the syntax for multiple arguments in PHP?PHP中多个参数的语法是什么?
【发布时间】:2011-09-18 12:53:35
【问题描述】:

一个简单的问题:

在 PHP 中创建带有 unlimited* 参数的函数的语法是什么?

示例(ActionScript 3):

function multiTrace(...arguments):void
{
    var i:String;
    for each(i in arguments)
        trace(i);
}

我们的目标是拥有一个我可以调用并在其中列出任何给定数量的样式表的函数,例如:

$avian->insertStyles("overall.css", "home.css");

*受到明显限制(RAM 等)。

【问题讨论】:

标签: php methods


【解决方案1】:
function multiTrace() 
{
    $args = func_get_args();
    while ($arg = array_shift($args)) {
        echo $arg; 
    }
}

见:http://php.net/manual/en/function.func-get-args.php

【讨论】:

  • @Peter Kruithof 也只是一个例子,while 循环有点问题。想想如果给定参数之一是 0false(或任何可以转换为布尔值 false 的参数)会发生什么。
  • Marty,你应该接受一个答案,如果它回答了你的问题 :) 你可能还想看看 func_num_args()func_get_arg(),虽然 func_get_args() 似乎是在大多数情况下。您可能还对default argument values 感兴趣,例如function getUerName($userID = null) { }
  • @Yoshi,说得好。我会使用foreach ( $args as $arg ) { }
  • @binaryLV @Peter Kruithof 是的,如果需要循环,我也会使用。
  • @binaryLV 有最短时间来回答接受 - 我知道如何使用 SO。另外,感谢您提供的其他链接。
【解决方案2】:

http://nl.php.net/manual/en/function.func-get-args.php

function testfunction() {
    $arguments = func_get_args();

    var_dump($arguments);
}

testfunction("argument1", "argument2");

结果:

array
  0 => string 'argument1' (length=9)
  1 => string 'argument2' (length=9)

【讨论】:

    【解决方案3】:

    我认为你在使用 func_get_args 函数:
    http://php.net/manual/en/function.func-get-args.php

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-21
      • 2011-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多