在PHP类中重置输入属性
进一步发展第一个提到的班级 我的目标是创建一个可以重置$inputNumber和$inputArray的类,但是下面的方法似乎不起作用在PHP类中重置输入属性,php,class,properties,Php,Class,Properties,进一步发展第一个提到的班级 我的目标是创建一个可以重置$inputNumber和$inputArray的类,但是下面的方法似乎不起作用 class myClass { public $inputNumber = 27; public $inputArray = array(1, 2, 4); public $outputArray = array(); public function setInput($newNumber) { $this->inputNumber = $new
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();
class-myClass
{
公共$inputNumber=27;
public$inputArray=array(1,2,4);
public$outputArray=array();
公共函数setInput($newNumber)
{
$this->inputNumber=$newNumber;
}
公共函数setArray($newArray)
{
$this->inputArray=$newArray;
}
函数_u构造(){
$this->outputArray=array($this->inputArray[0]*$this->inputNumber,
$this->inputArray[1]*$this->inputNumber,
$this->inputArray[2]*$this->inputNumber
);
}
公共函数printOutput()
{
$output=“第一个值是“$this->outputArray[0]”;
$output.=“第二个值是“$this->outputArray[1]”。”
;
$output.=“第三个值是“$this->outputArray[2]”;
返回$output;
}
}
$obj=新的myClass;
$obj=setInput(54);
$obj=setArray(数组(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;
}
公共函数calculateOutput()
{
$this->outputArray=array(
$this->inputArray[0]*$this->inputNumber,
$this->inputArray[1]*$this->inputNumber,
$this->inputArray[2]*$this->inputNumber
);
}
公共函数printOutput()
{
//现在计算你的结果
$this->calculateOutput();
$output=“第一个值是“$this->outputArray[0]”;
$output.=“第二个值是“$this->outputArray[1]”。”
;
$output.=“第三个值是“$this->outputArray[2]”;
返回$output;
}
然后删除构造函数,您的代码应该可以正常工作