Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP类中重置输入属性_Php_Class_Properties - Fatal编程技术网

在PHP类中重置输入属性

在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

进一步发展第一个提到的班级

我的目标是创建一个可以重置$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();
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; }
然后删除构造函数,您的代码应该可以正常工作