我正在尝试将参数传递给需要在终端上执行的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 :(得分:1)
从命令行调用类定义时,PHP不会自动调用构造函数。您需要在脚本底部添加一些过程代码来创建类的实例,如下所示:
$test = new test($argv[1], $argv[2]);
命令行参数列在$argv
全局变量中,从参数零中脚本本身的名称开始。
(你这里也有一个小的语法错误:
$this->$IDsOne = $IDsOne;
$this->$IDsTwo = $IDsTwo;
应该是
$this->IDsOne = $IDsOne;
$this->IDsTwo = $IDsTwo;
第一种方法是根据两个输入的值而不是两个类成员变量来初始化动态属性。)