从命令行将class属性设置为参数

时间:2016-12-11 22:12:21

标签: php

当我启动脚本时,我很难理解如何在命令行中将终端命令传递给$argv[1];变量。

我想用$argv[1]中的任何内容设置一个变量,我将在命令行中输入。

示例终端:

php script.php setting

示例代码:

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

    function __construct()
    {

    }

    function main()
    while(true)
    {

    }



}

$script = new script();

1 个答案:

答案 0 :(得分:2)

在您的示例中定义构造函数时,您需要在创建对象时将参数传递给构造函数。创建对象时始终会调用构造函数。获取构造函数然后使用引用您的类的$this->将参数分配给类属性(在使用过程时称为变量)。然后,您可以通过回显访问$test直接将属性设置为public。如果该属性设置为protectedprivate,那么您将无法在该类之外访问此属性。

终端:

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

有些人建议阅读材料以帮助您入门: