2017-10-08 15 views
1

PHPクラス内のpublic関数を使用して配列要素を操作する方法を理解しようとしています。すでに同様の質問を見直しましたが、問題を解決することはできません。以下は私がこれまで持っていたものです。PHPクラス内のpublic関数内の配列要素へのアクセス

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'を返す必要がある場合は、呼び出し側の要素の値にアクセスしてください(これが合う場合は' return'の代わりに単に 'echo'または' print')。 –

+0

コンストラクタ:function __construct(){$ this-> outputArray = array(...);}そして2番目と3番目のリターンを削除します。文字列を並行して一度だけ戻します。 – 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

いつでも歓迎!! –

関連する問題