14

私はこのコードを実行しようとしています:

function main(){
  if ($argc < 1){
    listDir(".");
  }
  else{
    for($i = 0; $i <= sizeof($argv); $i++){
      listDir($argv[$i]);
    }
  }
}

しかし、次のエラーが発生します。

PHP 通知: 未定義の変数: 15 行目の /home/me/test.php の argc

$argv と $argc はグローバル変数だと思いました。このエラーを取り除くにはどうすればよいですか?

これをコマンドラインから実行しています。

4

3 に答える 3

32

を追加

global $argc, $argv;

function main() {

これらの変数はグローバル スコープにありますが、関数のスコープにはありません。global キーワードはそれらをインポートします。

于 2013-05-07T22:19:19.193 に答える
6

あなたはおそらくやりたい:

$argc = $_SERVER['argc'];
$argv = $_SERVER['argv'];
于 2014-02-28T12:24:03.490 に答える
2

私も同じ問題を抱えていました。

次のコマンドを実行できます。

php -i | grep argv # Run this command

これは次のように出力されます。

<tr><td class="e">register_argc_argv</td><td class="v"> Off</td><td class="v"> Off</td></tr>

これは、PHP インタープリターがargvargcを登録していないことを意味します。

オフになっている場合は、php.iniファイルに移動して、register_argc_argv = On.

これで私の問題は解決しました。

于 2014-09-16T12:51:14.920 に答える