栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

$ _POST的未定义索引

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

$ _POST的未定义索引

在PHP中,从未设置的变量或数组元素与值为的元素不同

null
;尝试访问此类未 设置的 值是运行时错误。

这就是您遇到的问题:数组

$_POST
的键上没有任何元素
"username"
,因此解释器会在程序进行无效测试之前中止您的程序。

幸运的是,您可以测试变量或数组元素的存在,而无需实际尝试访问它。这就是特殊运算符的

isset
作用:

if (isset($_POST["username"])){  $user = $_POST["username"];  echo $user;  echo " is your username";} else {  $user = null;  echo "no username supplied";}

看起来,当PHP尝试获取

$_POST["username"]
要作为函数参数传递的value时,它将以与代码完全相同的方式爆炸
isset()
。但是,
isset()
它根本不是一个函数,而是在评估阶段之前就可以识别的特殊语法,因此PHP解释器将检查该值的存在而无需实际尝试检索它。

还值得一提的是,随着运行时错误的发生,缺少的数组元素被认为是次要的(分配了

E_NOTICE
级别)。如果更改
error_reporting
级别以便忽略通知,则原始代码将按编写的方式实际工作,而尝试的数组访问将返回
null
。但这被认为是不好的做法,尤其是对于生产代码。

旁注:PHP进行字符串插值,因此块中的

echo
语句
if
可以合并为一个:

echo "$user is your username";


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/421710.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号