我有几个较旧的应用程序,当在E_NOTICE错误级别上运行时,它们会抛出许多"xyz is undefined“和"undefined offset”消息,因为不会使用isset()和consorts显式检查变量的存在。
我正在考虑通过它们来使它们与E_NOTICE兼容,因为关于丢失变量或偏移量的通知可以是救命稻草,可能会有一些小的性能改进,而且总体上是更干净的方式。
然而,我不喜欢成百上千的isset() empty()和array_key_exists()对我的代码造成的影响。它变得臃肿,可读性变差,没有任何价值或意义。
如何在不进行过多变量检查的情况下构建代码结构,同时又与E_NOTICE兼容?
发布于 2009-12-25 19:52:00
软件并不是靠上帝的恩典神奇地运行的。如果你期望的东西丢失了,你需要正确地处理它。
如果您忽略它,您可能会在您的应用程序中创建安全漏洞。在访问未定义变量的静态语言中,这是不可能的。如果它是空的,它不会简单地编译或崩溃你的应用程序。
此外,这会使您的应用程序不可维护,并且当发生意想不到的事情时,您会发疯的。严格的语言是必须的,而PHP在很多方面都是错误的。如果你没有意识到这一点,它会让你成为一个糟糕的程序员。
https://stackoverflow.com/questions/1960509
复制相似问题