我知道可以使用可选参数,如下所示:
function doSomething($do, $something = "something") {
}
doSomething("do");
doSomething("do", "nothing");
但假设你有以下情况:
function doSomething($do, $something = "something", $or = "or", $nothing = "nothing") {
}
doSomething("do", $or=>"and", $nothing=>"something");
所以在上面的行中它会默认$something
到“某事”,即使我正在为其他一切设定价值。我知道这在 .net 中是可能的 - 我一直使用它。但如果可能的话,我需要用 PHP 来做这件事。
谁能告诉我这是否可能?我正在更改已集成到 Interspire 购物车中的 Omnistar 联盟计划 - 因此我希望在任何我不更改函数调用的地方保持功能正常工作,但在一个地方(我正在扩展)我想要指定附加参数。除非绝对必要,否则我不想创建另一个函数。
不,在 PHP 中这是不可能的。使用数组参数:
function doSomething($arguments = array()) {
// set defaults
$arguments = array_merge(array(
"argument" => "default value",
), $arguments);
var_dump($arguments);
}
用法示例:
doSomething(); // with all defaults, or:
doSomething(array("argument" => "other value"));
更改现有方法时:
//function doSomething($bar, $baz) {
function doSomething($bar, $baz, $arguments = array()) {
// $bar and $baz remain in place, old code works
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)