我正在学习验证表单输入数据,并且在w3schools上有一些我不理解的代码。见下文:
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
//bla bla bla
我不明白&#34; //定义变量并设置为空值&#34;装置
答案 0 :(得分:1)
不要使用本教程。我正在查看此test_input()
函数,并且无法相信有人会发布此代码:
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
请在此处查看我的回答,了解有关为什么这是一个坏主意的更多信息,以及该怎么做:https://stackoverflow.com/a/7810880/362536
现在,谈谈你的实际问题。在许多语言中,您需要在使用之前声明要使用的变量。 PHP不是这些语言之一。有些人认为如果你知道所有变量都在前面,你的代码会更容易阅读,并且定义这些变量作为代码风格的问题。也就是说,它们将列出变量并将它们设置为某个值。您拥有的代码:
$nameErr = $emailErr = $genderErr = $websiteErr = "";
......在功能上等同于:
$nameErr = '';
$emailErr = '';
$genderErr = '';
$websiteErr = '';
在PHP中,您可以链接变量赋值,这就是为什么这两者是等价的。
如果您选择将变量声明为样式,则不应为其分配空字符串。您应该使用null
代替。假设我有一个从用户输入字段有条件地分配数据的变量。如果我使用空字符串''
来初始化变量,我无法知道表单字段是否存在并且是否已提交。如果我使用null
,我可以使用isset()
来确定变量是否包含空表单字段(空字符串''
)或null
作为其值。
您可以很好地确定空字符串初始化适合您的应用程序。正如John Conde在上面的评论中所说,许多人使用它,这样他们就可以自由地连接变量而不用担心它们中的内容,因为即使它们没有获得明确的值,你已经分配了一个空的串。我认为,很少有时候你会处理在整个生命周期中始终保持一个目的的数据,并且最好尽可能以最干净的方式提供数据。如果变量旨在为null
,则其值应为null
而不是空字符串。您选择的取决于您和您的具体情况。