PHP isset 在处理中似乎没有正确读取

PHP isset does not seem to read correctly in processing

我正在编写的 PHP 脚本中发生了一件奇怪的事情。我有一个相当大的表单,其中包含很多字段、复选框、单选按钮等。

在处理脚本中有很多重复的代码,我在其中检查是否设置了一个字段,如果是则根据该字段输出一个句子。

我用来处理字段的代码是:

if(isset($_POST['testresults'])) { // test results Info
    $testresults = $_POST['testresults'];
    echo $clientInitials . " test results are " . $testresults . ". ";
} 

现在,出于某种原因,在与此相同的 40 多个块中(仅具有不同的变量和句子输出),有两个块即使在字段设置为 empty/not 时也会执行。作为测试,我将相同的代码块复制到一个新的 PHP 文件中,它具有相同的行为,但这是除了 field/variable 名称之外正常工作的块的精确副本。我已经从表单中剪切粘贴了字段名称,以确保没有拼写错误或其他问题。 作为另一个测试,如果我将行更改为 if(!isset($_POST['testresults'])) 然后它会像应该的那样跳过该块。因此,它的反应就好像该字段中有数据,即使没有(它也对其他 1 个块执行此操作)。字段 names/variables 也没有在脚本的其他任何地方使用,我通过搜索文件验证了这一点。

表单字段为:

<input type="text" name="testresults" value="">

我试过使用和不使用 "value" 参数,没有任何变化。所有其他正常工作的都包含 value=""。

我已经尝试清除我的浏览器缓存,但没有任何区别,仍然会出现这种奇怪的行为。

所以我想我只是想知道使用 isset() 是否有限制,还是我遗漏了什么?

isset() 只会检查一个值是否已设置,如果它为空则不会,这就是为什么它更常用于首先检查表单是否实际提交,或者检查 $ _GET 变量。您应该使用的功能是 empty() - 或者在您的情况下 !empty() 像这样:

if(!empty($_POST['testresults'])) { // test results Info
    $testresults = $_POST['testresults'];
    echo $clientInitials . " test results are " . $testresults . ". ";
}