所以我试图查看用户是否输入了任何内容:
$test = $_GET["restaurantName"];
if(isset($test))
{
echo "you inputed something";
echo "$test";
}
if(!isset($test))
{
echo "you did not input anything";
echo "$test";
}
die("The End");
出于某种原因,即使我没有输入任何内容,它仍然会通过第一个if语句,并且即使我没有查看有关isset()
和我很确定你应该如何使用它。
答案 0 :(得分:2)
如果你想保持相同的布局风格,你应该这样做。
if(isSet($_GET["restaurantName"])) {
$test = $_GET["restaurantName"];
}
if(isset($test))
{
echo "you inputed something";
echo "$test";
} else { //!isset($test)
echo "you did not input anything";
echo "$test";
}
您的问题是您正在设置变量,即使GET不存在。
我将如何亲自完成,因为它使相同的输出使代码更短:
if(isSet($_GET["restaurantName"])) {
$test = $_GET["restaurantName"];
echo "Your input: ".$test;
} else {
echo "No Input";
}
答案 1 :(得分:1)
您正在设置它:$test = $_GET["restaurantName"];
isset检查是否已设置变量,而不是包含的变量是null还是空,您可以使用!empty
您还可以检查isset($_GET["restaurantName"];)
,但要注意即使您的网址中的get变量为?restaurantName=
而且仍然设置,它只是空的
最好的办法是检查它是否已设置而不是空字符串:
if(isset($_GET["restaurantName"]) && $_GET["restaurantName"] != "")
{
echo "you inputed something";
echo $_GET["restaurantName"];
} else {
echo "you did not input anything";
}
die("The End");
我还删除了第二个if,因为你可以使用else子句而不是检查两次。
要阅读的一些链接: http://php.net/manual/en/function.isset.php http://php.net/manual/en/function.empty.php
答案 2 :(得分:0)
如果此$_GET['restaurantName']
来自提交的(GET)表单输入而不是链接中的查询字符串(可能存在也可能不存在),则始终会设置它。如果用户没有输入任何内容,则将其设置为空字符串。您可以使用empty
代替isset
进行检查(empty
包含对isset
的检查。)
if (!empty($_GET['restaurantName'])) {
echo "you input " . $_GET['restaurantName'];
} else {
echo "you did not input anything";
}
最好还是检查修剪后的条目,以防它' '
,你可以用
if (!empty($_GET['restaurantName']) && trim($_GET['restaurantName'])) { ...
但是,这开始进入形式验证,这本身就是另一个话题。