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

Vin*_*nny 2 php oop parameters function

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

public function Test($req, $alsoreq, $notreq = null, $notreq2 = null, $notreq3 = null)
{ 
    ...
}
Run Code Online (Sandbox Code Playgroud)

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

例如:

Test('req', 'alsoreq', 'notreq3'); 
Run Code Online (Sandbox Code Playgroud)

无视notreq2notreq

我试过了

Test('req', 'alsoreq', '', '', 'notreq3');
Run Code Online (Sandbox Code Playgroud)

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

Nul*_*ion 9

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

Test($req, $alsoreq, NULL, NULL, $notreq3);
Run Code Online (Sandbox Code Playgroud)

正如你清楚地表明前两个可选的args是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);
Run Code Online (Sandbox Code Playgroud)