如何将函数的结果输出到字符串中?

时间:2014-12-15 21:06:44

标签: php string function output

我有以下功能:

function simulator () {
for($x = 0; $x <= 1000; $x++) {
    $var_1 = mt_rand(0,100);
    if ($var_1 <= 55) {
        $var_1 = " A";
        echo $var_1;
        $var_2 = mt_rand(0,100);
        if ($var_2 <= 52) {
            $var_2 = " A";
            echo $var_2;
            $var_3 = mt_rand(0,100);
            if ($var_3 <= 52) {
                $var_3 = " A";
                echo $var_3;
                $var_4 = mt_rand(0,100);
                if ($var_4 <= 48) {
                    $var_4 = " A";
                    echo $var_4;
                    $var_5 = mt_rand(0,100);
                    if ($var_5 <= 45) {
                        $var_5 = " A";
                            echo $var_5;
                        $var_6 = mt_rand(0,100);
                        if ($var_6 <= 42) {
                            $var_6 = " A";
                            echo $var_6;
                            $var_7 = mt_rand(0,100);
                                    if ($var_7 <= 29) {
                                            $var_7 = " A";
                                echo $var_7;
                            }
                        }
                    }
                 }
            }
        }
    }
    echo " B";
  }
}

simulator();

但不是显示结果,而是希望它被制作成一个巨大的字符串。

$string = simulator()一样,但我知道这不起作用。

有任何帮助吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

您可以创建变量并将结果添加到变量中。

$result='';
$result.=do($something);
$result.=do($somethingElse);
return $result;

答案 1 :(得分:0)

只需将其添加到数组中,然后使用implode。

function simulator () {
    $arr = [55, 52, 52, 48, 45, 42, 29];
    $out = [];
    for($x = 0; $x < 1001; $x++) {
        foreach($arr as $val) {
            $var = mt_rand(0,100);
            if ($var > $val) {
                $out[] = "B";
                continue 2;
            }
            $out[] = "A";
        }
    }
    return implode(" ", $out);
}

echo simulator();