Php 忽略未使用的类型参数并移动到下一个
我一直在找,但找不到任何解决办法。我也不知道这是否可能 我这里有两个案例,有人可以做: 案例1:Php 忽略未使用的类型参数并移动到下一个,php,function,parameters,Php,Function,Parameters,我一直在找,但找不到任何解决办法。我也不知道这是否可能 我这里有两个案例,有人可以做: 案例1: $callback = function(Object $obj, $var) { // Do stuff } 案例2: $callback = function($var) { // Do stuff } 现在我将这样调用函数: call_user_func_array($callback, [new Object, 'some text']) 但现在有一个问题。在案例2中,
$callback = function(Object $obj, $var) {
// Do stuff
}
案例2:
$callback = function($var) {
// Do stuff
}
现在我将这样调用函数:
call_user_func_array($callback, [new Object, 'some text'])
但现在有一个问题。在案例2中,$var
将被视为对象参数。当对象未使用时,如何仅向调用发送字符串参数?我不想改变顺序,物体必须是第一个
另外,我注意到这在Symfony框架中是可能的。我将继续研究Symfony是如何做到这一点的,任何提示都将不胜感激
谢谢你的阅读 您可以使用反射 例如:
function call(callable $callback, $var, object $obj = null)
{
$callbackArguments = array();
$parameters = (new ReflectionFunction($callback))->getParameters();
foreach ($parameters as $parameter) {
if ($parameter->getType() == 'object') {
$callbackArguments[] = $obj;
} else {
$callbackArguments[] = $var;
}
}
return call_user_func_array($callback, $callbackArguments);
}
你不能。如果对象是第一个-首先发送对象。这就是我要找的。非常感谢!