🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 设置可选参数 * 虽然大多数情况下,命令参数是必要的,但也有些时候,参数是可选的。下面我们介绍下如何定义可选参数。 ### 1、定义语法 * 可选参数的定义语法与必要参数相似,只需在参数名后加个 `?` 即表示是可选参数: `{参数名?}` * 可以给可选参数指定一个默认值: `{参数名=默认值}` * 注意:当给一个可选参数指定默认值时,就不用在参数名后加 ? 了。 * 也可包含参数说明: `{参数名? : 参数说明}` \*【注意】: * 分隔 `参数名` 与 `参数说明` 的冒号两边必须加空格; * 可选参数必须定义在所有必要参数之后。 ### 2、命令类中设定可选参数 * 在命令类中,命令参数与命令名、命令选项都是在 signature 属性中设置的。 ``` protected $signature = 'command:name {param1} {param2?}'; ``` ### 3、闭包命令中设定可选 参数 * 在闭包命令中,命令参数与命令名、命令选项都是在 Artisan::command 方法的第一个参数中设置的。 ``` Artisan::command('command:name {param1} {param2?}', function ($param1) { $param2 = $this->argument('param2'); }); ``` 注意:上面的例子中由于 param2 是个没有指定默认值的可选参数, 所以不能包含在闭包函数的参数中,而是在闭包函数内,通过 $this->argument() 方法来获取。