我现在正在上一个简单的类,以使我对OOP有所了解,并且在功能方面需要一些帮助。该函数接收各种参数,其中一些是可选的:

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


如何通过传递第一个参数和最后一个参数来调用函数?

例如:

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


忽略notreq2notreq

我试过了

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


但这看起来很丑陋,而且有点怪异。

最佳答案

你不能想想看,如果可以的话,PHP如何判断第三个参数是$notreq$notreq2还是$notreq3?一种不太骇人听闻的方法是:

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


您已经清楚地知道前两个可选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);

09-19 17:14