林学习验证表单输入数据,并有对我不明白W3Schools的这段代码。 见下文:
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
//bla bla bla
我不明白什么叫“//定义变量并设置为空值”的意思。
林学习验证表单输入数据,并有对我不明白W3Schools的这段代码。 见下文:
<?php
// define variables and set to empty values
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
//bla bla bla
我不明白什么叫“//定义变量并设置为空值”的意思。
不要使用此教程。 我期待在这个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
作为其值。
你很可能决定空字符串初始化是适合您的应用。 正如约翰·孔德在上面的评论说,许多人用这个,使他们能够自由地串联变量,而不用担心什么在他们,即使他们没有得到一个明确的价值分配,你已经分配了一个空字符串。 我认为,有很少的时候,你将与始终保持一个单一的目的贯穿它的寿命数据的工作,而且它最好有在干净的表示尽可能数据。 如果一个变量旨在null
,其值应确实是null
,而不是一个空字符串。 你选择什么,完全由你和你的具体情况。