Php $x=$_POST[';某物';];
我有一个关于php的问题。我不知道该怎么解决它。当编写这样的代码时,Php $x=$_POST[';某物';];,php,web,Php,Web,我有一个关于php的问题。我不知道该怎么解决它。当编写这样的代码时,$x=$\u POST['something']这是一个错误。当我写这样的代码时 if (isset($_POST['something'])) { $x = $_POST['something']; } 一切都很好。我不知道为什么?谁能给我解释一下哪种方法正确吗?抱歉,英语不好$\u POST['something']如果该变量未赋值(即没有值),则会给出一个错误isset()检查变量是否未赋值,如果是,则不会执行任
$x=$\u POST['something']代码>这是一个错误。当我写这样的代码时
if (isset($_POST['something'])) {
$x = $_POST['something'];
}
一切都很好。我不知道为什么?谁能给我解释一下哪种方法正确吗?抱歉,英语不好$\u POST['something']
如果该变量未赋值(即没有值),则会给出一个错误isset()
检查变量是否未赋值,如果是,则不会执行任何操作。因此,您得到的错误源于$\u POST superglobal中没有名为“something”的变量这一事实。问题是$\u POST['something']可能未设置,即该变量可能不存在(它是数组中的一个元素,因此可以以某种方式将其视为变量,为简单起见,即使这不是100%正确)
如果你加上这个条件
if(isset($_POST['something']))
,则仅当设置了$\u POST['something']时才进行分配。所以,你确信你能完成这个任务。好吧,这不是一个错误,只是一个通知。如果将“错误报告”设置为“全部”或类似,则会显示该对话框。它基本上告诉你变量还没有设置好,如果你有输入错误或其他什么的话,它会非常有用
您可以使用if(isset())东西,或者只告诉PHP您想通过使用@
$x = @$_POST['something'];
isset()
函数用于检查是否设置了变量。第二个版本在尝试使用变量之前检查变量是否已设置,这样就不会出现错误。然而,你可以用很少的研究努力找到这个问题的答案。在问之前请先回答。还要确保检查。您是否阅读了isset()的手册?该通知可能重复表明预期的输入变量不存在。用你的如果
/isset
包装你隐藏了那条信息;但是如果您尝试访问$x
,以后将遇到相同的问题。因此,terneray probe?:
和无提示替换赋值是常用的,或者在这种情况下使用@
来保存日志条目。如果使用@
@lonesomeday的理由不是@
被认为非常慢的话,那就很少有了,而且容易掩盖您希望能够看到的错误消息。自PHP5.4以来,@
在没有错误发生时对性能的影响几乎为零。在特定情况下(如可选属性、会话数据……数据通常存在,但可能丢失,而不是错误),可以极大地减少代码量。举个简单的例子,$prop=isset($obj->prop)$obj->prop:null
与$prop=@$obj->prop
的比较。谢谢大家的帮助。如果我想在标签中输入信息,这是最好的方法吗?if(isset($\u POST['something']){$x=$\u POST['something'];echo$x;}