2016-12-11 6 views
1

スクリプトを開始するときに、コマンドラインで$argv[1];の変数にターミナルコマンドを渡す方法を理解するのが苦労しています。クラスプロパティをコマンドラインから引数として設定する

私はコマンドラインに入力する$argv[1]にある変数を設定したいと思います。

例端子:

php script.php setting 

例コード:

class script 
{ 
    public $somesetting = argv[1]; 

    function __construct() 
    { 

    } 

    function main() 
    while(true) 
    { 

    } 



} 

$script = new script(); 

答えて

2

あなたはあなたの例では、コンストラクタを定義したように、あなたがオブジェクトを作成するとき、コンストラクタにあなたの引数を渡す必要があります。コンストラクタは、オブジェクトの作成時に常に呼び出されます。コンストラクタを取得して、クラスプロパティ(という名前のプロシージャを使用する場合はと呼びます)に、$this->を使用して引数を割り当てます。このプロパティの可視性がpublicに設定されているため、プロパティを直接エコーすることによって$testにアクセスできます。プロパティがprotectedまたはprivateに設定されている場合は、クラス外でこのプロパティにアクセスすることはできません。

ターミナル:ターミナル

Hello 

一部から

php test.php hello 

Script.php

<?php 

class script 
    { 

     public $test; 

     function __construct($arg) 

     { 

      $this->test = $arg; 

     } 
    } 

    $script = new script($argv[1]); 

    echo $script->test . "\r\n"; 

出力あなたが始めるために材料を読んでお勧めします。

+1

正しい、ありがとうございました。 –

関連する問題