您所在位置: 网站首页 / 文档列表 / PHP资料 / 文档详情
PHP编程中10个最常见的错误.docx 立即下载
上传人:元容****少女 上传时间:2024-09-07 格式:DOCX 页数:11 大小:13KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

PHP编程中10个最常见的错误.docx

PHP编程中10个最常见的错误.docx

预览

免费试读已结束,剩余 1 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PHP编程中10个最常见的错误PHP编程中10个最常见的错误在生活中,好多人疑惑PHP语言难不难呢?那么,小编来解答PHP编程中10个最常见的错误,欢迎来阅读!错误1:foreach循环后留下悬挂指针在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法:$arr=array(1,2,3,4);foreach($arras&$value){$value=$value*2;}//$arrisnowarray(2,4,6,8)这里有个问题很多人会迷糊。错误1:foreach循环后留下悬挂指针在foreach循环中,如果我们需要更改迭代的元素或是为了提高效率,运用引用是一个好办法:A$arr=array(1,2,3,4);foreach($arras&$value){$value=$value*2;}//$arrisnowarray(2,4,6,8)这里有个问题很多人会迷糊。循环结束后,$value并未销毁,$value其实是数组中最后一个元素的引用,这样在后续对$value的使用中,如果不知道这一点,会引发一些莫名奇妙的错误:)看看下面这段代码:$array=[1,2,3];echoimplode(',',$array),"\n";foreach($arrayas&$value){}//byreferenceforeach($arrayas$value){}//byvalue(i.e.,copy)上面代码的运行结果如下:1,2,31,2,31,2,2你猜对了吗?为什么是这个结果呢?我们来分析下。第一个循环过后,$value是数组中最后一个元素的引用。第二个循环开始:第一步:复制$arr[0]到$value(注意此时$value是$arr[2]的引用),这时数组变成[1,2,1]第二步:复制$arr[1]到$value,这时数组变成[1,2,2]第三步:复制$arr[2]到$value,这时数组变成[1,2,2]综上,最终结果就是1,2,2避免这种错误最好的办法就是在循环后立即用unset函数销毁变量:$arr=array(1,2,3,4);$value=$value*2;}unset($value);//$valuenolongerreferences$arr[3]错误2:对isset函数行为的错误理解对于isset函数,变量不存在时会返回false,变量值为null时也会返回false。这种行为很容易把人弄迷糊。。。看下面的代码:$data=fetchRecordFromStorage($storage,$identifier);if(!isset($data['keyShouldBeSet']){//dosomethinghereif'keyShouldBeSet'isnotset}写这段代码的人本意可能是如果$data[‘keyShouldBeSet’]未设置,则执行对应逻辑。但问题在于即使$data[‘keyShouldBeSet’]已设置,但设置的值为null,还是会执行对应的逻辑,这就不符合代码的本意了。下面是另外一个例子:if($_POST['active']){$postData=extractSomething($_POST);}//...if(!isset($postData)){echo'postnotactive';}上面的代码假设$_POST[‘active’]为真,那么$postData应该被设置,因此isset($postData)会返回true。反之,上面代码假设isset($postData)返回false的唯一途径就是$_POST[‘active’]也返回false。真是这样吗?当然不是!即使$_POST[‘active’]返回true,$postData也有可能被设置为null,这时isset($postData)就会返回false。这就不符合代码的本意了。如果上面代码的本意仅是检测$_POST[‘active’]是否为真,下面这样实现会更好:}//...}判断一个变量是否真正被设置(区分未设置和设置值为null),array_key_exists函数或许更好。重构上面的第一个例子,如下:if(!array_key_exists('keyShouldBeSet',
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

PHP编程中10个最常见的错误

文档大小:13KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用

手机号注册 用户名注册
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
我已阅读并接受《用户协议》《隐私政策》
已有账号?立即登录
登录
手机号登录 微信扫码登录
微信扫一扫登录 账号密码登录

首次登录需关注“豆柴文库”公众号

新用户注册
VIP会员(1亿+VIP文档免费下)
年会员
99.0
¥199.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用