【发布时间】:2017-10-26 11:47:39
【问题描述】:
我管理一个非常古老的 PHP/MySQL 站点,该站点广泛使用以下语法来检查是否设置了变量:
if($var){ /* do something */ }
我知道处理这个问题的正确方法是使用 isset() 函数... 但我不能。在线版本可以正常工作(在旧的 gentoo 服务器上),本地版本可以在带有 wamp 2.0(我知道)的非常旧的 Windows XP 计算机上正常工作,并且代码中的任何地方都使用这种语法。
我想在更新/更快的计算机上复制我的本地版本。我在旧的 Windows XP 计算机上安装了相同的 wamp 版本,但我收到了数不清的“注意:未定义的变量/索引 ...”错误。我怀疑可以在 wamp PHP 设置 中完成某些事情,但我不知道去哪里看或做什么。我在旧电脑上工作并在网上工作:必须有办法让它在更新的电脑上工作。
编辑:我想“告诉”PHP 将“未定义”变量作为“假”变量处理(这就是它在 XP 服务器上的工作方式)。关闭错误不会解决问题。我需要if($var){... 充当if(isset($var)){...。
在两台服务器(XP和新PC)上,版本如下:
- Wamp:2.0i
- 阿帕奇:2.2.11
- PHP : 5.3.0
- MySQL : 5.1.36
任何帮助表示赞赏并提前感谢。 这是我在这个精美网站上的第一个问题:如果我做错了什么,请道歉。
编辑 2:感谢@Boratzan 找到了一个解决方案(参见 balow)。我将php.ini(1 个来自 Apache 文件夹,1 个来自 PHP 文件夹)从旧计算机复制到新计算机,并进行了一些小的路径编辑以考虑到两个 wamp 服务器未安装在同一路径中的事实。
编辑 3:经过进一步调查,@Boratzan 似乎从一开始就是正确的。解决方案是将位于 apache/ApacheX.X.XX/bin/ 目录中的 php.ini 文件中的 error_reporting 的值更改为 E_ALL & ~E_NOTICE。这是一个草率的解决方案,但它
【问题讨论】:
-
我建议你试试看会发生什么:)
-
你可以但你不想想要。遗留代码很痛苦,但如果你想避免这些错误,你必须检查它们是否已设置。
-
分享你的代码...?
-
您可能正在寻找
error_reporting设置,但正如其他人提到的,最好修复您的代码。 -
代码在新电脑上不起作用。我很想用“isset”来修复这个糟糕的语法(它让我的眼睛灼伤!)但是该站点太大而无法更正每个文件。这确实是站点范围的问题,而不是我在某个特定脚本上遇到的问题。