我有一个功能
public function test($arg1, $arg2 = "a", $arg3 = "b")
有没有办法调用它只指定$arg1
和$arg3
保留$arg2
默认值?
答案 0 :(得分:2)
function test($arg1, $arg2 = "a", $arg3 = "b") {
if (is_null($arg2)) $arg2 = "a";
return $arg1.' '.$arg2.' '.$arg3;
}
echo test(1, null, 3);
输出:
1 a 3
在JavaScript中也会指出这很常见:
function test (input, callback) {
$.post( "example.com/endpoint", input, function(err, data) {
if (error || response.statusCode !== 200) {
callback(true, response)
}
callback(null, data)
})
}
test({
'id': 1,
'name': 'Mary'
}, function (err, data) {
if (err) {
console.log.error('Error!!')
console.log(data)
}
console.log.info(data)
})
答案 1 :(得分:0)
答案 2 :(得分:0)
你可以使用这样的currying函数:参考这个post
function foo($x, $y, $z) {
echo "$x - $y - $z";
}
$bar = function($z) {
foo('A', 'B', $z);
};
$bar('C');
也:
function foo($x, $y, $z) {
echo "$x - $y - $z";
}
function fnFoo($x, $y) {
return function($z) use($x,$y) {
foo($x, $y, $z);
};
}
$bar = fnFoo('A', 'B');
$bar('C');