虽然我访问了php文档,但我并不了解“isset”功能的用法。 1 - 例如在php教程书中,作者用这个上下文写了一篇文章:当我们在first.html中创建一个表单并且我们想要使用second.php中的表单信息时,我们必须使用这两段代码: / p>
if(!isset($_GET['q']))
die("The Search key word is not set !!!");
$key = $_GET['q'];
if($key == "")
die("The Search key word must be entered !!!");
但我不明白这两个代码有什么区别?
2 - 另一个例子我看到这个代码用于检查底部是否被点击:
if(isset($_POST['login_btn']))
{
....
}
但我不明白为什么要检查底部是否被点击?
答案 0 :(得分:2)
$key="";
isset($key) //This evaluates to true.
字符串为空,但定义了变量。 isset()
函数返回true,即使对于空字符串也是如此。
也许您希望使用empty()
代替,其中包含更广泛的条件,评估为false。
答案 1 :(得分:2)
isset
检查给定的变量或索引是否存在。如果您认为变量存在而不存在,则PHP会生成通知。你使用isset
做的所有事情都在抑制可能的通知 - 这是一种很好的做法。
答案 2 :(得分:1)
不同之处在于,在一个实例中,表单未提交,在第二个实例中,表单已提交,但空白值。
如果表单尚未提交,您不希望在页面上处理表单。
一个页面上可能还有多个表单,因此您可以检查按钮值以找出提交的表单。
答案 3 :(得分:0)
这个功能非常简单
在php.net上:
确定变量是否已设置且不为NULL。
在您的情况下,您的post变量的isset函数检查是否为空
答案 4 :(得分:0)
这里的每个人都已经向您解释了isset()
函数检查的内容(即如果设置了变量),但我认为您真正要问的是$_GET[]
和$_POST[]
$_GET[]
工作。您需要更多地查看提供此代码的表单。了解$_POST[]
和login_btn
变量是什么,我认为这段代码对您来说更有意义。
例如,您的第二个示例检查是否通过post方法发送了名为{{1}}的值。如果是,则运行...代码块。
答案 5 :(得分:0)
$key == ""; // Is $key an empty string
isset($key); // Has the $key variable been defined and not null
仅供参考,以下是其他一些可能有用的内容
empty($key); // Is $key and empty value (0, false, null, "", array())
$key == false // Is $key a falsey value (0, false, null, "", "0", array())
$key === false // Is $key a false boolean (false)
答案 6 :(得分:0)
我只是要稍微剖析你的代码..
if(!isset($_GET['q']))
die("The Search key word is not set !!!");
通常用于查看URL中的变量是否设置如下:
http://mysite.com/index.php?q=1
设置$_GET['q']
并且isset($_GET['q'])
会回来 true
$key = $_GET['q'];
if($key == "")
检查$key
是否为空。使用我之前的示例网址,$key
不会为空或空白,而是1
。
处理表单的脚本需要知道在表单之后访问它的方式不会出错。这是您希望确保按下表单提交按钮的位置。由于这令人困惑,这里有一个例子:
假设您要将博客系统的标签插入到数据库中,您可能拥有如下代码:
<强> AddTag.php 强>
<form name="addtag" method="process.php" action="post">
<input type="text" name="tagname" />
<input type="submit" name="submittag" />
</form>
<强> process.php 强>
<?php
if ($_POST['submittag']) {
//INSERT query
}
?>
如您所见,如果在没有首先访问AddTag表单的情况下访问 process.php ,脚本将不会尝试插入您的标记。