2017-10-08 3 views
1

Essayer de comprendre comment utiliser des éléments de tableau avec une fonction publique dans une classe PHP. Ont déjà passé en revue des questions similaires, mais sans être en mesure de résoudre le problème. Voici ce que j'ai jusqu'ici.Accéder à un élément de tableau dans une fonction publique dans une classe 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

Vous ne pouvez 'return' une fois dans une fonction, de sorte que ça ne va pas au travail. Si vous devez retourner '$ this-> outputArray', alors accédez aux valeurs de l'élément appelant (ou simplement' echo' ou 'print' au lieu de' return', si cela vous convient) –

+0

Comment affecter les valeurs dans le constructeur: function __construct() {$ this-> outputArray = array (...);} et supprime les 2e et 3e retours. Concenatez les chaînes et revenez une seule fois. – Nitin

+0

Et il vous manque les références (this->). – Nitin

Répondre

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

Vous pouvez également utiliser des valeurs définies. autre bonne sage de passer dans le constructeur

<?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(); 

ici est extrait en cours d'exécution: https://ideone.com/miOQJB

+0

Merci, Ankur. Vous avez fourni quelque chose avec lequel je peux travailler. –

+0

Toujours la bienvenue !! –