質問があります: (既に Google で検索しましたが、答えが見つかりませんでした)。変数内の文字列が最初に実行される可能性はありますか? 例えば :
<?php
function example($times) {
for($i = 4; $i < $times; $i++) echo $i;
}
$var = example(10);
echo "3$var";
?>
そして、このコードは次を出力します:
4567893
結果を関数内の変数として収集し、それを返します。
<?php
function example($times) {
$result='';
for($i=4;$i<$times;$i++) $result.=$i;
return $result;
}
$var=example(10);
echo "$var"."3";
他の方法では、関数の出力を制御できないか、多くの html マークアップがある場合にのみ、 出力バッファー キャプチャを使用します。
<?php
function example($times) {
for($i=4;$i<$times;$i++) echo $i;
}
ob_start();
example(10);
$var=ob_get_clean;
echo "$var".3;
php.netの詳細
と の違いを理解する必要がecho
ありreturn
ます。
関数example
は出力を直接エコーします。の値は$var
でNULL
、何も表示されません。
したがって、あなたがしていることは実際にはこれと同じです:
echo 4; // in example()
echo 5; // in example()
echo 6; // in example()
echo 7; // in example()
echo 8; // in example()
echo 9; // in example()
echo "3"; // $var == '';
出力を収集する場合は、次のexample
ように記述します。
function example($times) {
$numberstring = '';
for($i = 4; $i < $times; $i++) {
$numberstring .= $i;
}
return $numberstring;
}
試す:
function example($times) {
$str='';
for($i = 4; $i < $times; $i++)
$str .=$i;
return $str;
}
$var = example(10);
echo $var."3";