1. url方式
$param = array(); if ($argc > 1) { parse_str ( $argv [1], $param ); foreach ( $param as $k => $v ) { echo "define $k=$v\n"; $param[$k] = $v; } } print_r($param); //運行示例 php sync_t_search.php "name=sjk&city=bj"
2、系統內置變量
//當傳入多個或多個參數可選時有很大的局限性 $argv #0為當前執行的文件名 $argc #參數個數
3、系統函數 getopt
//1、個人總結:如果只傳一個參數,:(必選)/::(可選)都可
//2、如果傳多個參數則要區分可選必選,建議盡量用可選參數並且后面的值不要傳入空格 //3、可選參數:標識符存在且有值時,下標才會存在
//4、必選參數:只要標識符存在,下標就會存在(如果取不到值為false) /** * php song.php -h"a b" || php song.php -h"a b" 不受空格影響(建議保持一致都不加空格) array(1) { ["h"]=> string(3) "a b" } php song.php -h -a array(1) { ["h"]=> string(2) "-a" } */ var_dump(getopt('h:a::')); //必選參數,如果參加之間有空格要加引號, 選項后面有空格也不會影響取值,會把他后面的值都當做參數的值 /** php song.php -asong array(1) { ["a"]=> string(4) "song" } */ var_dump(getopt('a::h:')); //可選參數,參數必須緊跟在選項后面,否則獲取不到
4、系統函數 getopt
//標准輸出 fwrite(STDOUT, "Enter your name: "); echo "\n"; //標准輸入 $name = trim(fgets(STDIN)); fwrite(STDOUT, "Hello, $name!");