PHP 中如何优雅的处理未定义变量

2015-06-07 14:06:40 +08:00
 fbzl
没有使用框架的老程序中经常会有获取$_GET['id'],而id确不存在,开启报错时,都会看到好多报错。

一种最原始的手动判断(一大坨,影响逻辑的代码)

写一个判断变量是否存在的函数(用的时候感觉怪怪的)

另一种情况是未知成员对象引用也会报错


PS:开发环境拒绝关闭报错
6536 次点击
所在节点    PHP
27 条回复
fbzl
2015-06-07 18:36:57 +08:00
@geeglo 前后顺序写错了,汗
lyragosa
2015-06-07 18:41:30 +08:00
我是直接禁用所有报错信息,眼不见为净。

历史遗留没那么好修的
fbzl
2015-06-07 22:15:09 +08:00
@lyragosa
原来是5.2版本的,存在攻击漏洞,该升级了

顺便为了整理下逻辑,为自己开发方便点

看看有什么潜在漏洞后门之类的
tcsky
2015-06-07 23:40:31 +08:00
写一个全局的 array_get函数,用来处理数组.
skydiver
2015-06-07 23:56:19 +08:00
@fbzl 你记错了,empty不会报notice
skydiver
2015-06-07 23:56:55 +08:00
优雅的方法就是不要直接读取全局变量$_GET $_POST,而是用框架提供的方法。
fbzl
2015-06-08 00:02:15 +08:00
@skydiver

嗯,我逻辑写错了,直接替换的isset

现在的系统框架不完善,下一步就是重构,过渡期先找一下替代方案,还有一些小项目(随手写的)也可以用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/196697

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX