2016-12-11 2 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->, который ссылается на класс, в котором вы находитесь. Затем вы можете получить доступ к $test, повторив свойство direct, так как видимость для этого свойства была установлена ​​на public , Если для свойства было установлено значение protected или private, значит у вас не будет доступ к этой недвижимости за пределами класса.

Terminal:

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"; 

Выход из терминала

Hello 

Некоторые рекомендую прочитать материал, чтобы вы начали:

+1

Правильно, спасибо. –

Смежные вопросы