我很难理解下面的PHP代码。
代码的第一行是一个超全局变量,其中包含一个请求元素:
我假设这一行简单地说明了使用哪种方法将数据发送到服务器,在这种情况下使用了POST。
但我有点模糊的是第二行
我是否理解这条线意味着" 如果没有贴出名字,那么就会发生一些事情"?
某事似乎是第三行,否则第四行被激活
这就是我迷路的地方。
第三行为变量$error
分配一个语句,第四行为变量$name
分配另一个语句。
但$error
似乎附有两个不同的陈述,我不清楚$name = test_input($_POST["name"])
的含义。
换句话说,只有第一行对我来说很清楚,并且包含" 的行如果不是preg匹配",因为我熟悉preg匹配。
但是,我不清楚的是&#34之后出现的行;如果不是preg匹配"。
$name = ""
是否意味着如果您输入的不是字母或空格,那么您刚输入的内容将被删除?
而且(再次)我对$error
有两个值的事实感到困惑。
有人可以赐教我吗?
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$error = "Name is required";
} else {
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
$name = "";
$error = "Anything that is not letters or whitespace are not allowed";
}
}
}
答案 0 :(得分:0)
此代码来自W3Schools文章。我建议你阅读所有这些内容。它们非常详细。
阅读这些文章,他们有很好的解释。
$error
仅分配一次,因为其中一个位于if
,另一个位于else
。 This也可以帮助您。
答案 1 :(得分:0)
我已经编辑了你的代码(只是简单地缩进),以便你阅读。开始以这种方式缩进你的代码,你不会感到困惑:
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (empty($_POST["name"]))
{
$error = "Name is required";
}
else
{
$name = test_input($_POST["name"]);
if (!preg_match("/^[a-zA-Z ]*$/",$name))
{
$name = "";
$error = "Anything that is not letters or whitespace are not allowed";
}
}
...
}
{
打开一个区块,}
关闭它。如果您知道if
和else
的含义,那么它现在应该是显而易见的。如果没有,请阅读Control Structures上的PHP手册。
但显而易见的是,if
块中的代码仅在条件为真时运行。如果前面的else
的条件不正确,则运行if
块中的代码。所以$error
没有两个值。它的值取决于if语句中的检查值。