在PHP中,是否可以将函数放入变量并让字符串首先进入变量print?

时间:2012-11-16 21:06:48

标签: php function loops

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

   <?php

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

?>

并且此代码打印:

  

4567893

3 个答案:

答案 0 :(得分: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

的更多信息

答案 1 :(得分:0)

尝试:

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

$var = example(10);   
echo  $var."3";

答案 2 :(得分:0)

您需要了解echoreturn之间的区别。

您的函数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;
}