重置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; 
} 

然后取出构造,当你拥有它已经在你的代码应工作。