2016-08-11 6 views
1

端末で実行する必要があるPHPスクリプトに引数を渡そうとしています。端末からのオブジェクト初期化時に引数を渡す

test.class.php端末上

class test { 

     // ID's param for query thread 
     private $IDsOne; 
     private $IDsTwo; 

     /* __construct 
     * Constructor called on object initilization 
     */ 
     public function __construct($IDsOne, $IDsTwo) { 
       $this->$IDsOne = $IDsOne; 
       $this->$IDsTwo = $IDsTwo; 
       $this->output(); 
     } 

     public function output() { 
       // check if object attributes set? 
       var_dump($this->IDsOne); 
       var_dump($this->IDsTwo); 
     } 
} 

> php test.class.php 0 100 

私はクラスのコンストラクタに引数を渡すために "0" をしようと "100" です。私は現在、エラーが発生していないか、またはデータを返しました。

+0

CLI引数には '$ argv'([docs](http://php.net/manual/en/reserved.variables.argv.php))でアクセスできます。 –

答えて

1

クラス定義がコマンドラインから呼び出されたときにPHPがコンストラクタを自動的に呼び出すことはありません。あなたはこのように、クラスのインスタンスを作成するためのスクリプトの一番下にあるいくつかの手続きのコードを追加する必要があります。

$test = new test($argv[1], $argv[2]); 

コマンドライン引数は、スクリプト自身の名前で始まる、グローバル変数に記載されています引数は0です。

(あなたがここにもマイナーな構文エラーを持っている:

最初の方法ではなく、2つの入力の値に基づいて動的プロパティを初期化します

$this->IDsOne = $IDsOne; 
$this->IDsTwo = $IDsTwo; 

でなければなりません

$this->$IDsOne = $IDsOne; 
$this->$IDsTwo = $IDsTwo; 

を)

関連する問題