0

我有一个问题:(我已经在谷歌上搜索过,但找不到任何答案)。变量中的字符串是否可以先运行?例如 :

   <?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

尝试:

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 回答
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 回答