PHP Conference Japan 2024

$argv

(PHP 4, PHP 5, PHP 7, PHP 8)

$argv傳遞給腳本的參數陣列

說明

包含一個 陣列,其中包含從命令列執行腳本時傳遞給腳本的所有參數。

注意 第一個參數 $argv[0] 永遠是用於執行腳本的名稱。

注意register_argc_argv 被停用時,這個變數將無法使用。

範例

範例 #1 $argv 範例

<?php
var_dump
($argv);
?>

使用以下指令執行範例: php script.php arg1 arg2 arg3

上述範例會輸出類似以下的內容

array(4) {
  [0]=>
  string(10) "script.php"
  [1]=>
  string(4) "arg1"
  [2]=>
  string(4) "arg2"
  [3]=>
  string(4) "arg3"
}

注意事項

備註:

這也可以透過 $_SERVER['argv'] 取得。

另請參閱

新增備註

使用者貢獻的備註 6 則備註

tufan dot oezduman at googlemail dot com
13 年前
請注意,在類別方法中嘗試存取 $argv 和 $argc 時,需要將它們宣告為全域變數。

<?php
class A
{
public static function
b()
{
var_dump($argv);
var_dump(isset($argv));
}
}

A::b();
?>

將會輸出 NULL bool(false) 並顯示「未定義的變數...」的通知。

而使用 global $argv 可以解決這個問題。
hamboy75 at example dot com
11 年前
使用 $_GET 就不需要同時支援命令列和網頁瀏覽器的使用方式。

foreach ($argv as $arg) {
$e=explode("=",$arg);
if(count($e)==2)
$_GET[$e[0]]=$e[1];
else
$_GET[$e[0]]=0;
}
Steve Schmitt
15 年前
如果您有 shell script 的背景,您可能會期望在「位置參數」的標題下找到這個主題。
php at simoneast dot net
9 年前
有時 $argv 可能為 null,例如當「register-argc-argv」設定為 false 時。在某些情況下,我發現從命令列(或 cron)執行「php-cli」而不是「php」時,變數會正確填入。
Radon8472
3 年前
我發現,如果您使用 php 內建的網頁伺服器,即使在 php.ini 中將 `register_argc_argv` 設定為 `On`,它也始終為 OFF。

這表示似乎沒有辦法在 php 內建命令列伺服器中存取 argv / argc。
vatruski at t dot me
1 年前
您可以為網頁應用程式重新初始化參數變數。
因此,如果您建立了一個命令列程式,透過一些額外的調整,您可以使其在網頁上運作。
To Top