2016-12-10 8 views
0

... この私のコード:しかし、私は、コール第三の機能の前に0ではなく2つの異なる関数に2つの変数を追加し、出力をPHPの別の関数に表示する方法はありますか?別の関数内で別の変数に2つの異なる機能とストア値内の二つの異なる変数を追加する方法

<?php 
class race 
{ 
    var $a; 
    var $b; 

    function fast() 
    { 
     $a=10; 
     $this->a; 
    } 

    function slow() 
    { 
     $b=20; 
     $this->b; 
    } 

    function avg() 
    {    
     $c=$this->a+$this->b; 
     echo $c; 
    } 

} 

$relay = new race(); 
$relay->avg(); 
?> 
+0

私はこの変数について質問していません... –

+0

あなたは '$ this'について尋ねる必要があります。 – Federkun

+0

機能について質問しています@Federkunは私のものではありません... –

答えて

2

30のような出力を得ます、あなたがオブジェを使用している。まず

protected $a; 
protected $b; 

function fast() 
{ 
    $a=10; 
    $this->a = $a; 
} 
function slow() 
{ 
    $b=20; 
    $this->b = $b; 
} 
function avg() 
{ 
    $c=$this->a+$this->b; 
    echo $c; 
} 

} 
$relay = new race(); 
$relay->fast(); 
$relay->slow(); 
$relay->avg(); 
+0

ranjithありがとう –

1

:の$ this - >コードの下&ます$ this-> B

試しに値を代入することを最初の二つの機能を呼び出す必要がありますctプロパティが正しくありません。最初にプロパティのスコープを指定する必要があります。この場合、プロテクトされたスコープを使用して、プロパティを直接使用する必要があるときにクラスを拡張することができます。

また、あなたが解除変数を追加しようとしているならば、それは動作しません、あなたは__construct()に、このインスタンスを追加またはプロパティのインスタンスで0に等しくなるようにそれらを設定するか、注意してください。

class Speed { 

    protected $_a = 0; 
    protected $_b = 0; 

    public function fast() 
    { 
     $this->_a = 20; 
     return $this; 
    } 

    public function slow() 
    { 
     $this->_b = 10; 
     return $this; 
    } 

    public function avg() 
    { 
     return $this->_a + $this->_b; 
    } 

} 

これは、このように使用することができます:メソッドでビューに直接出力するないを試し、

ただ、サイドノート:

$s = new Speed(); 
$s->fast()->slow(); 

// todo: add logic 

echo $s->avg(); 

更新閉鎖。テンプレートを使用し、メソッドから値を返し、それらをテンプレートに出力します。

関連する問題