我有一个问题:(我已经在谷歌上搜索过,但找不到任何答案)。变量中的字符串是否可以先运行?例如 :
<?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的更多信息
尝试:
function example($times) {
$str='';
for($i = 4; $i < $times; $i++)
$str .=$i;
return $str;
}
$var = example(10);
echo $var."3";
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;
}