我现在正在上一个简单的类,以使我对OOP有所了解,并且在功能方面需要一些帮助。该函数接收各种参数,其中一些是可选的:
public function Test($req, $alsoreq, $notreq = null, $notreq2 = null, $notreq3 = null)
{
...
}
如何通过传递第一个参数和最后一个参数来调用函数?
例如:
Test('req', 'alsoreq', 'notreq3');
忽略
notreq2
和notreq
?我试过了
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);