我是PHP的初学者,想知道这两者之间有什么区别:
$variable = "text";
if($variable){
echo $variable;
}
并且这个
$variable = "text";
if(isset($variable)){
echo $variable;
}
我是PHP的初学者,想知道这两者之间有什么区别:
$variable = "text";
if($variable){
echo $variable;
}
并且这个
$variable = "text";
if(isset($variable)){
echo $variable;
}
isset
用于检查您收到的输入是否包含您期望的内容——这是一个非常宽泛的定义,我写这个试图轻松解释何时使用它。
当您自己设置变量时,使用 isset
就没有意义了,您知道它已经被设置并且包含某些值。
然而,许多语言(不仅仅是 PHP)处理用户输入。在这种情况下,用户可以是人类、另一个计算机服务等。通常将该输入存储在变量中。PHP 的一个很好的例子是 $_POST
、$_GET
、$_SERVER
、$_SESSION
。
当您收到用户通过 HTML 表单制作的输入时,您希望检查某些值是否已被填充,在这种情况下,您使用 isset
。
下面是一个 HTML 表单示例:
<form method="POST" action="your_file.php">
<input type="text" name="first_name" />
<input type="text" name="last_name" />
<button type="submit">Send</button>
</form>
有人可以提交该表单,他们可以填写两个输入框。或者只填一个,甚至一个都不填。您不知道他们做了什么,但无论如何-PHP都会为您提供一个可能包含正确输入的变量。
如果我提交了空白表单,并且您尝试访问first_name
的值-您将收到PHP警告-您不希望出现PHP警告。
因此,在使用用户输入(在本例中为$_POST
超全局数组)之前,您应该检查我是否正确填写了所有内容,并且您可以通过以下方式实现:
if(isset($_POST['first_name']) && isset($_POST['last_name']))
{
echo "Form was filled in correctly";
}
else
{
echo "Form wasn't filled in correctly! Please fill in both fields";
}
也许你的例子有点偏颇。但是,如果你忽略每个代码段的第一行,也许你会有不同的看法。考虑这些代码段。
if($variable){
echo $variable;
}
$variable = "text";
if($variable){
echo $variable;
}
将测试变量是否为 true 或非零。
isset() 函数将忽略值,并告诉您变量是否已初始化。
在以下代码段中,if() 语句将返回 true。
$variable = "text";
if(isset($variable)){
echo $variable;
}
在这段代码中,while
<?php
if(isset($variable)){
echo $variable;
}
if()语句将返回false。
isset()
最适合用于单选框和复选框。对于字符串/整数输入,请使用empty()
。当一个变量包含一个值时,使用isset()
永远是真的。 - Funk Forty Niner$_POST['foo']
。只有在进行 POST 请求并定义了foo
表单字段时才会存在它。不能直接开始使用它,因为它可能不存在,所以需要使用 isset() 测试确保它存在。 - Marc B$variable=false;
放入代码中并重试。在您的示例中,整个 if 语句都是无意义的,因此问题也是无意义的。 - Sami Kuhmonen