将多个参数传递给PHP中的方法

时间:2010-10-02 15:29:45

标签: php oop function parameters

我正在研究一个简单的课程,以便了解OOP,我需要一些功能方面的帮助。该函数接收各种参数,其中一些是可选的:

public function Test($req, $alsoreq, $notreq = null, $notreq2 = null, $notreq3 = null)
{ 
    ...
}

如何调用该函数,传递两个第一个参数和最后一个参数?

例如:

Test('req', 'alsoreq', 'notreq3'); 

忽略notreq2notreq

我试过

Test('req', 'alsoreq', '', '', 'notreq3');

但这看起来很丑陋和黑客。

3 个答案:

答案 0 :(得分:8)

你做不到。想想看,如果你能做到这一点,那么PHP如何能够判断第三个参数是$notreq$notreq2还是$notreq3?一种不那么强硬的方式是:

Test($req, $alsoreq, NULL, NULL, $notreq3);

正如您清楚地表明前两个可选参数是NULL

明智地选择参数的顺序,因此更经常使用的参数顺序是第一位的 或者,您可以使用数组:

public function Test($req, $alsoreq, array $notreq) { ... }

// no optional args
Test($req, $alsoreq);

$optional = array('arg1' => 'something', 'arg2' => 'something else');
Test($req, $alsoreq, $optional);

$optional = array('arg3' => 'hello');
Test($req, $alsoreq, $optional);

答案 1 :(得分:1)

似乎没有办法。 正如php manual所述:

  

请注意,使用默认值时   参数,任何默认值都应该打开   任何非违约的右侧   参数;否则,事情就不会发生   按预期工作。

您正尝试将非默认值(notreq3)置于默认右侧(notreq2,notreq1)。 丑陋和hackish方式可能更正确。

此致 哔叽

答案 2 :(得分:0)

  1. 编写一个名为aboutMe的函数。
  2. 它需要两个参数$name$age
  3. 它应echo out "Hello! My name is $name, and I am $age years old."
  4. 调用您的函数并查看结果面板以查看它是否有效!
  5. <强>提示

    "Hello! My name is " . $name . " and I am " . $age . " years old."