重置PHP类中的输入属性
问题描述:
进一步发展首先参考here的类。重置PHP类中的输入属性
我的目标是创建一个类,$ inputNumber和$ inputArray可以重置,但下面的方法似乎不起作用。
class myClass
{
public $inputNumber = 27;
public $inputArray = array(1, 2, 4);
public $outputArray = array();
public function setInput($newNumber)
{
$this->inputNumber = $newNumber;
}
public function setArray($newArray)
{
$this->inputArray = $newArray;
}
function __construct() {
$this->outputArray= array($this->inputArray[0]*$this->inputNumber,
$this->inputArray[1]*$this->inputNumber,
$this->inputArray[2]*$this->inputNumber
);
}
public function printOutput()
{
$output = "1st value is " . $this->outputArray[0] . "<br>";
$output .= "2nd value is " . $this->outputArray[1] . "<br>";
$output .= "3rd value is " . $this->outputArray[2] . "<br>";
return $output;
}
}
$obj = new myClass;
$obj = setInput(54);
$obj = setArray(array(6, 12, 24);
echo $obj->printOutput();
答
的问题是,outputArray
在类的构造,你将自己的输入和阵列之前,恰好计算。
您应该计算逻辑移动到它自己的方法,例如:
public function calculateOutput()
{
$this->outputArray= array(
$this->inputArray[0] * $this->inputNumber,
$this->inputArray[1] * $this->inputNumber,
$this->inputArray[2] * $this->inputNumber
);
}
public function printOutput()
{
// Calculate your result now
$this->calculateOutput();
$output = "1st value is " . $this->outputArray[0] . "<br>";
$output .= "2nd value is " . $this->outputArray[1] . "<br>";
$output .= "3rd value is " . $this->outputArray[2] . "<br>";
return $output;
}
然后取出构造,当你拥有它已经在你的代码应工作。