Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-DI调用默认参数为null的方法_Php_Php Di - Fatal编程技术网

PHP-DI调用默认参数为null的方法

PHP-DI调用默认参数为null的方法,php,php-di,Php,Php Di,我试图对一个有默认参数的方法使用PHP-DI调用,但我得到了这个错误 致命错误:Uncaught Invoker\Exception\NotEnoughParametersException:无法调用可调用项,因为没有为参数1提供值… PS:PHP-DI6 Classe Bill { public function index($slug=null,Request $request){ //---- } } use DI\Containe

我试图对一个有默认参数的方法使用PHP-DI调用,但我得到了这个错误

致命错误:Uncaught Invoker\Exception\NotEnoughParametersException:无法调用可调用项,因为没有为参数1提供值…

PS:PHP-DI6

  Classe Bill
  {

  public function index($slug=null,Request $request){
            //----
       }
  }

use DI\ContainerBuilder;

$containerBuilder = new ContainerBuilder;
$container = $containerBuilder->build();

$controller = 'Bill' ;
$method = 'index';
$parameters = []; 
$response = $container->call([$controller,$method], $parameters);

您需要为参数
$slug
提供一个值

如果参数在非可选参数之前是可选的,则不能忽略该参数。因此,您必须提供其价值。

有效:

类TestController{
函数doAction(Request$Request,int$id=null){}
}

不起作用:

类TestController{
函数doAction(int$id=null,Request$Request){}
}


来源:

@Mattieu Napoli感谢您给出了最快的答案,但我想知道……首先,是否可以将参数设为null?第二:如果是的话,我可以拿一个片段作为例子,让它发挥作用吗?你可能想从链接中提取一个摘要。它将帮助读者在不必导航到链接的情况下了解线程。感谢您的建议。通过定义一个名为“$slug”的参数来解决此问题