首页 > 解决方案 > 写入 .txt 文件,但我的 while 循环是无限的

问题描述

我正在使用 PHP 写入 txt 文件,但我的 while 循环是无限循环的。我看到了其他问题,他们提到没有添加计数器++,但我有递增计数器。为什么我的while循环无限循环?我想要完成的是每次在 html 表单上单击提交按钮时只添加一行代码。

PHP

    <?php

   if(isset($_POST['firstname']) && isset($_POST['lastname']))
    {
        $firstname = $_POST['firstname'];
        $lastname = $_POST['lastname'];

    $filename ='person.txt';

    $fp = fopen($filename, 'w'); 

    $cntr = 0;

    while(true){

        $firstname = $_POST['firstname'];
        $lastname = $_POST['lastname'];

        if(empty($firstname) && empty($lastname))
        {
            break;
        }

        $cntr++;

        print($firstname . " " . $lastname . " " . "<br");
        $output = $firstname . " " . $lastname . "\n";
        fwrite($fp, $output);
    } //END OF WHILE LOOP

    }//END ISSET
    fclose($fp);


?>

标签: php

解决方案


使循环在代码中停止的唯一方法是 with break;,这显然不会被调用。

您的计数器不会对代码做出任何贡献,只会增加自身。由于while(true)总是评估为true,它将永远循环。如果要使用计数器,则设置 while 循环的条件while($cntr < $max),但需要定义$max为一个值,例如 10。


推荐阅读