0

質問があります: (既に Google で検索しましたが、答えが見つかりませんでした)。変数内の文字列が最初に実行される可能性はありますか? 例えば ​​:

   <?php

function example($times) { 
for($i = 4; $i < $times; $i++)   echo $i; 
}
$var = example(10);
echo  "3$var";

?>

そして、このコードは次を出力します:

4567893

4

3 に答える 3

3

結果を関数内の変数として収集し、それを返します。

<?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の詳細

于 2012-11-16T21:10:34.887 に答える
0

と の違いを理解する必要がechoありreturnます。

関数exampleは出力を直接エコーします。の値は$varNULL、何も表示されません。

したがって、あなたがしていることは実際にはこれと同じです:

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;
}
于 2012-11-16T21:17:25.760 に答える
0

試す:

function example($times) { 
 $str='';
 for($i = 4; $i < $times; $i++)   
  $str .=$i; 
 return $str;
}

$var = example(10);   
echo  $var."3";
于 2012-11-16T21:09:26.460 に答える