2012-08-12 11 views
6

私はexec()を使ってファイルを実行していますが、そのファイルはクラス内にありますが、私はargvについて詳しく読んでいますが、混乱していました。私はそれをクラス内で働かせる必要があります。

それは言う:

は、そのは、$ ARGVとに注意してください$ argcのphp.netのクラスメソッド

以内にアクセスしようとしながら、グローバルに宣言する必要が

+0

そして目標は何ですか?引数はコンソール実行用です。 – Stony

答えて

20

つまり、argc/argvはスーパーグローバルではなく、PHPスクリプトのトップレベルのコンテキストでのみ表示されるため、

<?php 

$x = $argv[1]; // works 

class foo { 
    function bar() { 
     echo $argv[1]; // undefined 
    } 
    function baz() { 
     global $argv; 
     echo $argv[1]; // works 
    } 
} 
+0

問題が修正されました。ありがとうございます – user1588878

+1

これは '$ GLOBALS ['argv'] ...を使って行うこともできます。変数を現在のスコープにコピーするか、変数をスーパーグローバルにすることは望ましくありません。 – ThorSummoner