2017-09-30 3 views
0
<?php 
class bankbalanced{ 
    public $banakbalance=100; 
    public function showbalance(){ 
     echo $this->banakbalance; 
    } 
} 
$bb=new bankbalanced; 
echo 'balance is:'.$bb->showbalance(); 
?> 

上記のコードでは、オブジェクトによってプロパティとともに文字列をエコーし​​てみました。 なぜ最初に $ bb-> showbalance() はエコーされますが、残高はありません。 出力は '100balance is:'となっています。しかし、これは、 として書式設定しています。残高:100 最初の文字列を次にプロパティにアクセスするオブジェクトによって連結 おかげさまで助けてくれてありがとう。PHPオブジェクトのプロパティをechoと一緒に返します。

+1

showbalance機能でエコーしません。 '$ this-> banakbalance'を返すだけです。 –

答えて

0

showbalance()天秤をエコーし​​て返しません。したがって、関数を呼び出すと、残高がエコーされます。その後、関数は何も返しません。文字列balance is:に連結され、連結された文字列は呼び出し元によってエコーされます。あなたがそのようにそれを書くとき、$tempstringを計算しながら、関数内echoが起こることを明確にする必要があります

$tempstring = $bb->showbalance(); 
echo "balance is:" . $tempstring; 

これを理解する別の方法は

echo "balance is:" . $bb->showbalance(); 

と等価であるということですこれは、その文字列が連結されてエコーされる前です。

echo "balance is:"; 
$bb->showbalance(); 

をそれとも、それをエコーするのではなく、バランスを戻すために機能を変更する必要があります。

あなたは行う必要があります。

function getbalance() { 
    return $this->banakbalance; 
} 

echo 'balance is:' . $bb->getbalance(); 
+0

echoはすべての行を一度にエコーするのと同じように、最初の文字列のようにはなりません。 – amit

+0

'echo'はその引数をエコーし​​ます。しかし、関数が実行されるまで引数を取得しません。 – Barmar

+0

私は答えにいくつかの説明を追加しました。関数を呼び出すステートメントを実行するときの操作の順序を理解し、その結果で何かを行う必要があります。 – Barmar

関連する問題