-1

以下のように、間に関数出力テキストを取得しようとしています。しかし、それは常にトップで終わります。これを正しく設定する方法はありますか?Apple Pie、Ball、Cat、Doll、Elephant のはずですが、Doll が常に一番上に表示されます。

function inBetween()
{
echo 'Doll <br>';
}

$testP = 'Apple Pie <br>';
$testP .='Ball <br>';
$testP .='Cat <br>';
inBetween();
$testP .='Elephant';

echo $testP;
4

3 に答える 3

6

関数は最初に実行されるため、画面の上部に表示されます。文字列に追加していますが、関数が実行されるまで表示されません。最初にエコーが出力されます。次のような戻り値を試してください。

function inBetween()
{
    return 'Doll <br>';
}

$testP = 'Apple Pie <br>';
$testP .='Ball <br>';
$testP .='Cat <br>';
$testP .= inBetween();
$testP .='Elephant';

echo $testP;

編集:次のように機能する参照渡しもできます:

function inBetween(&$input)
{
    $input.= 'Doll <br>';
}

$testP = 'Apple Pie <br>';
$testP .='Ball <br>';
$testP .='Cat <br>';
inBetween($testP);
$testP .='Elephant';

echo $testP;

変数を関数に渡すとcopy&が送信されますが、関数宣言でan を使用すると、変数自体が送信されます。関数によって行われた変更は、元の変数になります。これは、関数が変数に追加され、最後にすべてが出力されることを意味します。

于 2012-08-14T10:53:31.907 に答える
0

echo の代わりに使用return 'Doll <br>';してから$testP .= inBetween();

于 2012-08-14T10:54:14.067 に答える
0

それは、あなたがあなたのinbetween()前を走っているからですecho $testP

試す:

function inBetween()
{
return 'Doll <br>';
}

$testP = 'Apple Pie <br>';
$testP .='Ball <br>';
$testP .='Cat <br>';
$testP .=inBetween();
$testP .='Elephant';

echo $testP;
于 2012-08-14T10:55:08.953 に答える