更新现有的PHP回显

时间:2014-06-20 10:51:44

标签: php string

我遇到了一个问题,我必须在获取我想要添加到字符串中的数据之前回显一个字符串。我需要将echo保持在while语句之上的相同位置,以便while循环的结果显示在输出语句下面。

以下是代码:

    $countTimes = 0;
    $jsonCheck_c = json_encode($json_c);

    output("font-weight: bold;", "Checklist (0 of " . $countTimes . " completed)");

    if(strlen($jsonCheck_c) > 20){
        while($searchChecklists){
            $checkPre = $json_c[0]['checkItems'][$countTimes]['name'];
            $jsonCheck_d = json_encode($checkPre);
            if($jsonCheck_d != "null"){
                $countTimes++;
                output("font-size: 12px;", $checkPre);
            }
            else {
                $searchChecklists = false;
            }
        }
    }

输出只是echo的字符串,但是有了一些参数,我想在输出中更新$ countTest,并在while循环结束时使用该值。

任何想法都会很棒,欢呼。

1 个答案:

答案 0 :(得分:1)

而不是echo'ing只是收集变量并稍后输出:

$jsonCheck_c = json_encode($json_c);
$output = array();

if(strlen($jsonCheck_c) > 20){
    while($searchChecklists){
        $checkPre = $json_c[0]['checkItems'][$countTimes]['name'];
        $jsonCheck_d = json_encode($checkPre);
        if($jsonCheck_d != "null"){
            $output[] = $checkPre;
        }
        else {
            $searchChecklists = false;
        }
    }
}

output("font-weight: bold;", "Checklist (0 of " . count($output) . " completed)");
foreach ($output as $line) {
    output("font-size: 12px;", $line);
}

如果您让output()函数返回结果而不是echo,则可以略微改进此代码。在这种情况下,您将避免双循环,而是收集字符串中output()的所有结果。