0
<?php
function dosomething(){
    echo "do\n";
}

$temp="test".dosomething();
echo $temp;
?>

期待される結果:testdo

しかし、実際の結果は次のとおりです。

テスト%

期待される結果を得るためにコードを変更する方法を知っています。しかし、私が疑うのは、コードがこのような結果を出力する理由です。誰かがそれを説明できますか?ありがとう!

4

5 に答える 5

3

dosomething画面に反響しています。これが最初に実行されるため、「do\n」が出力されます。

dosomethingまた、何も返さないため、2番目のエコーは次と同等ですecho "test";

呼び出しの結果を使用するには、それを返す必要があります。

function dosomething(){
    return "do\n";
}

期待どおりに動作します。

明確にするために。最初に "do\n" を出力する$temp関数を最初に実行する必要があります。

于 2013-10-16T08:36:39.847 に答える
1

リターンを使用します。

function dosomething(){
return "do\n"; }
于 2013-10-16T08:36:38.523 に答える
1

echo の代わりに return ステートメントを使用する

function dosomething(){
    return "do\n";
}
于 2013-10-16T08:36:51.690 に答える
0

これを試して:

呼び出し関数で return を使用します。そうすることで、関数が呼び出されている文字列を取得できます。したがって、関数は文字列に置き換えられ、2 つの文字列が連結されます。

-

ありがとう

于 2013-10-16T08:47:44.920 に答える