我有一个关于php的问题。我不太热解决它。写这样的代码时$x = $_POST['something'];
这是错误的。当我写这样的代码时,
if (isset($_POST['something'])) {
$x = $_POST['something'];
}
一切都很好。我不知道为什么?谁能解释一下哪种方法正确?抱歉英文不好
答案 0 :(得分:1)
AFAIK,这不是错误,只是一个通知。如果您将error_reporting设置为E_ALL或类似,则会显示它。它基本上告诉你这个变量还没有设置,如果你有拼写错误的话,非常有用。
您可以使用if(isset()),或者告诉PHP您要使用@
禁用此类警告$x = @$_POST['something'];
答案 1 :(得分:0)
$_POST['something']
将给出错误。 isset()
检查变量是否未分配,如果是这种情况则不执行任何操作。因此,你得到的错误源于$ _POST超全局没有变量,称为“某事”
答案 2 :(得分:0)
问题是$ _POST ['某些']可能没有设置,即这个变量可能不存在(它是数组中的一个元素,所以它可以被看作是变量,因为简单,即使这不是100%正确)。
如果添加条件
if(isset($_POST['something']))
,然后只有在设置了$ _POST ['某些']时才会进行分配。所以,你确信你可以完成这项任务。