##$argv or $argc
$argv 包含當運行於命令行下時傳遞給當前腳本的參數的數組。 $argv[0] 就是腳本文件名。
$argc 包含當運行於命令行下時傳遞給當前腳本的參數的數目。 腳本的文件名總是作為參數傳遞給當前腳本,因此 $argc 的最小值為 1。
倆變量僅在 register_argc_argv 打開時可用。
注意:$argv 和 $argc 在類方法或者函數內部 得聲明全局變量
<?php class A { public static function b() { var_dump($argv); var_dump(isset($argv)); } } A::b();
<?php printarg(); function printarg(){ global $argc,$argv; print($argc."個參數\n"); print_r($argv); }
##getopt
array getopt ( string $options [, array $longopts ] )
options 該字符串中的每個字符會被當做選項字符,匹配傳入腳本的選項以單個連字符(-)開頭。 比如,一個選項字符串 "x" 識別了一個選項 -x。 只允許 a-z、A-Z 和 0-9。 longopts 選項數組。此數組中的每個元素會被作為選項字符串,匹配了以兩個連字符(--)傳入到腳本的選項。 例如,長選項元素 "opt" 識別了一個選項 --opt。
options 可能包含了以下元素:
1.單獨的字符(不接受值)
2.後面跟隨冒號的字符(此選項需要值)
3.後面跟隨兩個冒號的字符(此選項的值可選)
選項的值是字符串後的第一個參數。它不介意值之前是否有空格。
返回值:
此函數會返回選項/參數對,失敗時返回 FALSE。
Note:
選項的值不接受空格(" ")作為分隔符。
options 和 longopts 的格式幾乎是一樣的,唯一的不同之處是 longopts 需要是選項的數組(每個元素為一個選項),而 options 需要一個字符串(每個字符是個選項)。
選項的解析會終止於找到的第一個非選項,之後的任何東西都會被丟棄。