think\console\Input::getParameterOption PHP Method

getParameterOption() public method

获取原始选项的值
public getParameterOption ( string | array $values, mixed $default = false ) : mixed
$values string | array 需要检查的值
$default mixed 默认值
return mixed The option value
    public function getParameterOption($values, $default = false)
    {
        $values = (array) $values;
        $tokens = $this->tokens;
        while (0 < count($tokens)) {
            $token = array_shift($tokens);
            foreach ($values as $value) {
                if ($token === $value || 0 === strpos($token, $value . '=')) {
                    if (false !== ($pos = strpos($token, '='))) {
                        return substr($token, $pos + 1);
                    }
                    return array_shift($tokens);
                }
            }
        }
        return $default;
    }

Usage Example

Esempio n. 1
0
 /**
  * 配置基于用户的参数和选项的输入和输出实例。
  * @param Input $input  输入实例
  * @param Output       $output 输出实例
  */
 protected function configureIO(Input $input, Output $output)
 {
     if (true === $input->hasParameterOption(['--ansi'])) {
         $output->setDecorated(true);
     } elseif (true === $input->hasParameterOption(['--no-ansi'])) {
         $output->setDecorated(false);
     }
     if (true === $input->hasParameterOption(['--no-interaction', '-n'])) {
         $input->setInteractive(false);
     } elseif (function_exists('posix_isatty') && $this->getHelperSet()->has('question')) {
         $inputStream = $this->getHelperSet()->get('question')->getInputStream();
         if (!@posix_isatty($inputStream) && false === getenv('SHELL_INTERACTIVE')) {
             $input->setInteractive(false);
         }
     }
     if (true === $input->hasParameterOption(['--quiet', '-q'])) {
         $output->setVerbosity(Output::VERBOSITY_QUIET);
     } else {
         if ($input->hasParameterOption('-vvv') || $input->hasParameterOption('--verbose=3') || $input->getParameterOption('--verbose') === 3) {
             $output->setVerbosity(Output::VERBOSITY_DEBUG);
         } elseif ($input->hasParameterOption('-vv') || $input->hasParameterOption('--verbose=2') || $input->getParameterOption('--verbose') === 2) {
             $output->setVerbosity(Output::VERBOSITY_VERY_VERBOSE);
         } elseif ($input->hasParameterOption('-v') || $input->hasParameterOption('--verbose=1') || $input->hasParameterOption('--verbose') || $input->getParameterOption('--verbose')) {
             $output->setVerbosity(Output::VERBOSITY_VERBOSE);
         }
     }
 }
All Usage Examples Of think\console\Input::getParameterOption