使用 ISSET() 并且值永远不会为 False with Html Select 选项代码

Using ISSET() and the value is never False with Html Select Option code

我正在努力更好地理解 ISSET() 函数。据我了解,如果使用得当,我可以确定 "submit" 按钮是否被按下,因为该函数会确定 true 或 false。我已经编写了一些使用 HTML 标记和 HTML 标记类型提交的 html 代码。我试图测试的是 ISSET 函数在未按下按钮时是否会 return False 以及在按下按钮时是否为 True。

使用名为 "Woody snippets" 的 Wordpress 插件,它允许在简码中组合 HTML 和 PHP。

请看下面我的代码:

我一直在尝试关注 youtube 上的验证视频 = https://youtu.be/x_-HdHijmkw

我一行一行地做了所有的事情,最初它起作用了,在刷新页面时,它没有清除所有的变量,并且 isset 函数就像布尔值是真的一样。我以为这是我的缓存,所以我清除了它。 ISSET 函数仍然表现得好像布尔值是真的。

<?php
if (isset($_GET['fname']) && isset($_GET['lname'])) {
$fname = $_GET['fname'];
$lname = $_GET['lname'];
echo "Hello ".$fname;
}
?>

<form action='' method='get'>
First Name: <input type="text" name="fname"><br>
Last Name: <input type="text" name="lname"><br>
<input type="submit" value="Greet Me"><br>
</form>  

我预计刷新后 isset() 函数和用于确定真或假的变量将是假的,直到我输入值并再次按下按钮。

前言:isset($a) && isset($b)等同于isset($a,$b)

isset() 证明 var 的存在,而不是它是否为空。尝试

if ( isset($_GET['fname'],$_GET['lname']) 
    && strlen($_GET['fname']) 
    && strlen($_GET['lname'])  { ...

isset() 检查变量是否存在,并且对于空字符串、0 和 NULL 值仍然 return 为真。一个快速的解决方案是使用 !empty() 代替:

if (!empty($_GET['fname']) && !empty($_GET['lname']))

参见:In where shall I use isset() and !empty()