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)
无视notreq2和notreq?
我试过了
Test('req', 'alsoreq', '', '', 'notreq3');
Run Code Online (Sandbox Code Playgroud)
但这看起来很丑陋和黑客.
你不能.想一想,如果你能做到这一点,那么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)