脚本参数

脚本执行可传复数的参数,同http请求可在方法中直接捕获,顺序跟参数顺序保持一致,可缺省

另外,可以用param方法获取对应位置的参数

例如:终端执行php shell.php test/demo 1 2 aaa,结果如下:

  1. // php shell.php test/demo 1 2 aaa
  2. namespace app\shell;
  3. use biny\lib\Shell;
  4. class testShell extends Shell
  5. {
  6. test/demo => testShell/action_demo
  7. public function action_demo($prm1, $prm2, $prm3, $prm4='default')
  8. {
  9. //1, 2, aaa, default
  10. echo "$prm1, $prm2, $prm3, $prm4";
  11. //1
  12. echo $this->param(0);
  13. //2
  14. echo $this->param(1);
  15. //aaa
  16. echo $this->param(2);
  17. //default
  18. echo $this->param(3, 'default');
  19. }
  20. }

同时框架还提供了变量化的参数传递方式,用法与http模式保持一致

例如:终端执行php shell.php test/demo —name="test" —id=23 demo,结果如下:

  1. // php shell.php test/demo --name="test" --id=23 demo
  2. namespace app\shell;
  3. use biny\lib\Shell;
  4. class testShell extends Shell
  5. {
  6. test/demo => testShell/action_demo
  7. public function action_demo($id, $name='demo', $prm='default')
  8. {
  9. //23, test, default
  10. echo "$id, $name, $prm";
  11. //23
  12. echo $this->param('id');
  13. //demo
  14. echo $this->param('name');
  15. //default
  16. echo $this->param('prm', 'default');
  17.  
  18. // 不带参数话模式的变量 将顺序从第0位开始
  19. // demo
  20. echo $this->param(0);
  21. }
  22. }

注意:使用变量化传递后,方法中默认参数将不会捕获非变量化的参数,如上例的demo需要通过param方法获取