命令行向php傳入參數的兩種方法


##$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  需要一個字符串(每個字符是個選項)。
選項的解析會終止於找到的第一個非選項,之后的任何東西都會被丟棄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM