getopt

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

getopt — 명령줄 인수 목록에서 옵션을 가져옵니다.


설명

getopt(string $short_options, array $long_options = [], int &$rest_index = null): array|false

스크립트에 전달된 옵션을 구문 분석합니다.


매개변수

short_options
이 문자열의 각 문자는 옵션 문자로 사용되며 단일 하이픈(-)으로 시작하는 스크립트에 전달된 옵션과 일치합니다. 예를 들어, 옵션 문자열 "x"는 -x 옵션을 인식합니다. a-z, A-Z 및 0-9만 허용됩니다.
long_options
옵션의 배열입니다. 이 배열의 각 요소는 옵션 문자열로 사용되며 두 개의 하이픈(--)으로 시작하는 스크립트에 전달된 옵션과 일치합니다. 예를 들어, longopts 요소 "opt"는 --opt 옵션을 인식합니다.
rest_index
rest_index 매개변수가 있으면 인수 구문 분석이 중지된 인덱스가 이 변수에 기록됩니다.

short_options 매개변수에는 다음 요소가 포함될 수 있습니다.

  • 개별 문자(값 허용 안 함)
  • 콜론이 뒤따르는 문자(매개변수에는 값이 필요함)
  • 두 개의 콜론이 뒤따르는 문자(선택적 값)

옵션 값은 문자열 다음의 첫 번째 인수입니다. 값이 필요한 경우 값에 선행 공백이 있는지 여부는 중요하지 않습니다. 참고를 참조하십시오.

참고: 선택적 값은 " "(공백)을 구분 기호로 허용하지 않습니다.

long_options 배열 값에는 다음이 포함될 수 있습니다.

  • 문자열(매개변수는 어떤 값도 허용하지 않음)
  • 콜론이 뒤따르는 문자열(매개변수에는 값이 필요함)
  • 두 개의 콜론이 뒤따르는 문자열(선택적 값)

참고: short_options 및 long_options의 형식은 거의 동일하지만, 유일한 차이점은 long_options는 옵션 배열(각 요소가 옵션임)을 취하는 반면 short_options는 문자열(각 문자가 옵션임)을 취한다는 것입니다.


반환 값

이 함수는 옵션/인수 쌍의 배열을 반환하거나 실패 시 false를 반환합니다.

참고: 옵션의 구문 분석은 처음으로 발견된 비 옵션에서 종료되고 그 다음의 모든 것은 폐기됩니다.


변경 로그

버전 설명
7.1.0 rest_index 매개변수를 추가했습니다.

Examples

예제 #1 getopt() 예제: 기본 사항

                  
<?php
// Script example.php
$options = getopt("f:hp:");
var_dump($options);
?>
                  
                
shell> php example.php -fvalue -h
                

위의 예는 다음을 출력합니다.

array(2) {
  ["f"]=>
  string(5) "value"
  ["h"]=>
  bool(false)
}
                

예제 #2 getopt() 예제: 긴 옵션 소개

                   
<?php
// Script example.php
$shortopts  = "";
$shortopts .= "f:";  // Required value
$shortopts .= "v::"; // Optional value
$shortopts .= "abc"; // These options do not accept values

$longopts  = array(
    "required:",     // Required value
    "optional::",    // Optional value
    "option",        // No value
    "opt",           // No value
);
$options = getopt($shortopts, $longopts);
var_dump($options);
?>
                   
                 
shell> php example.php -f "value for f" -v -a --required value --optional="optional value" --option
                 

위의 예는 다음을 출력합니다.

array(6) {
  ["f"]=>
  string(11) "value for f"
  ["v"]=>
  bool(false)
  ["a"]=>
  bool(false)
  ["required"]=>
  string(5) "value"
  ["optional"]=>
  string(14) "optional value"
  ["option"]=>
  bool(false)
}
                 

예제 #3 getopt() 예제: 여러 옵션을 하나로 전달

                    
<?php
// Script example.php
$options = getopt("abc");
var_dump($options);
?>
                    
                  
shell> php example.php -aaac
                  

위의 예는 다음을 출력합니다.

array(2) {
  ["a"]=>
  array(3) {
    [0]=>
    bool(false)
    [1]=>
    bool(false)
    [2]=>
    bool(false)
  }
  ["c"]=>
  bool(false)
}
                  

예제 #4 getopt() 예제: rest_index 사용

                     
<?php
// Script example.php
$rest_index = null;
$opts = getopt('a:b:', [], $rest_index);
$pos_args = array_slice($argv, $rest_index);
var_dump($pos_args);
                     
                   
shell> php example.php -a 1 -b 2 -- test
                   

위의 예는 다음을 출력합니다.

array(1) {
  [0]=>
  string(4) "test"
}
                   

기타