Please note that, $argv and $argc need to be declared global, while trying to access within a class method.
<?php
class A
{
public static function b()
{
var_dump($argv);
var_dump(isset($argv));
}
}
A::b();
?>
will output NULL bool(false) with a notice of "Undefined variable ..."
whereas global $argv fixes that.
$argv
(PHP 4, PHP 5)
$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"
}
tufan dot oezduman at googlemail dot com
22-Aug-2011 09:06
Steve Schmitt
14-Sep-2009 04:57
If you come from a shell scripting background, you might expect to find this topic under the heading "positional parameters".
karsten at typo3 dot org
18-Feb-2009 12:48
Note: when using CLI $argv (as well as $argc) is always available, regardless of register_argc_argv, as explained at http://docs.php.net/manual/en/features.commandline.php
