【问题标题】:How to output the result of a function into a string? [duplicate]如何将函数的结果输出到字符串中? [复制]
【发布时间】:2014-12-15 21:06:44
【问题描述】:

我有以下功能:

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(),但我知道那行不通。

有什么帮助吗?提前致谢。

【问题讨论】:

  • 使用return声明
  • $out = ''; 开头,将函数中echo 的每个实例替换为$out .=,然后在函数末尾替换为return $out;

标签: php string function output


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    只需将其添加到数组中,然后使用 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-01
      • 2012-10-22
      • 2021-02-18
      相关资源
      最近更新 更多