2017-10-08 52 views
1

试图弄清楚如何在PHP类中使用具有公共函数的数组元素。已经审查过相似的问题,但是无法解决问题。以下是我到目前为止。访问php类中的公共函数中的数组元素

class myClass 
{ 
    public $inputNumber = 27; 
    public $inputArray = array(1, 2, 4); 
    public $outputArray = array($inputArray[0]*$inputNumber, $inputArray[1]*$inputNumber, $inputArray[2]*$inputNumber); 

    public function printOutput() 
    { 
     return "1st value is " . $this->outputArray[0] . "<br>"; 
     return "2nd value is " . $this->outputArray[1] . "<br>"; 
     return "3rd value is " . $this->outputArray[2] . "<br>"; 
    } 
} 

$obj = new myClass; 

echo $obj->printOutput(); 
+1

只能'return'内的函数一次,所以这是行不通的。如果您需要返回'$ this-> outputArray',那么访问调用元素中的值(或者简单地'echo'或'print'而不是'return',如果适合的话)。 –

+0

如何分配构造函数:函数__construct(){$ this-> outputArray = array(...);}并删除第二个和第三个返回。集中字符串并只返回一次。 – Nitin

+0

而你错过了参考资料(this->)。 – Nitin

回答

0
class myClass 
{ 
    public $inputNumber = (int) 27; 
    public $inputArray = array(); 
    public $outputArray = array(); 

    function __construct($inputNumber = 27, $inputArray = array(1,2,4)) { 
     $this->inputNumber = (int) $inputNumber; 
     $this->inputArray = (array) $inputArray; 
     $this->outputArray= array($this->inputArray[0]*$this->inputNumber, $this->inputArray[1]*$this->inputNumber, $this->inputArray[2]*$this->inputNumber); 
    } 

    public function printOutput() 
    { 
     return "1st value is " . $this->outputArray[0] . "<br>" 
     . "2nd value is " . $this->outputArray[1] . "<br>" 
     . "3rd value is " . $this->outputArray[2] . "<br>"; 
    } 
} 

$obj = new myClass; 

echo $obj->printOutput(); 
1

您还可以使用定义的值。其他明智的好,在构造函数中

<?php 

class myClass 
{ 
public $inputNumber = 27; 
public $inputArray = array(1, 2, 4); 
public $outputArray = array(); 

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; 
echo $obj->printOutput(); 

路过这里正在运行的代码片段:https://ideone.com/miOQJB

+0

谢谢安库尔。你提供了一些我可以使用的东西。 –

+0

永远欢迎! –