也许有人可以给我一个想法,因为我到目前为止还没有使用过很多PHP。我在我的本地apache2上安装了一个php web应用程序并且遇到了麻烦,而其他许多人假装代码对他们有效。
以下是代码中所做操作的示例。 Ini文件用于存储配置。让我们称之为“my_config.cfg”:
FOO=2
BAR=something
现在代码如下所示:
$config = parse_ini_file("/opt/test/my_config.cfg", TRUE);
for ($i = 0; $i < $config[FOO]+1; $i++) {
..
}
这给了我一个关于使用非声明常量的错误。为了使其工作,我需要更改代码以使用引号:
$config = parse_ini_file("/opt/test/my_config.cfg", TRUE);
for ($i = 0; $i < $config['FOO']+1; $i++) {
..
}
问题是,上述代码如何为其他人工作?在我看来,它应该永远不会没有引号。在上面的例子中,我检查了“FOO”的定义语句的整个代码。空无一人。因此,我目前对此有点困惑,并且无法在该主题上谷歌任何内容。
提前感谢您的帮助。
答案 0 :(得分:0)
阅读错误消息,它说:
注意:使用未定义的常量FOO - 假设&#39; FOO&#39;
这意味着因为没有名为FOO
的常量,所以它会将$config[FOO]
视为您写的$config['FOO']
- 它试图成为当你犯这样的错误时会有所帮助。
如果其他人禁用了警告,他们会获得相同的行为但没有警告信息。
答案 1 :(得分:0)
好的,这意味着以下日志语句并不重要:
[Thu Sep 14 22:50:00.595913 2017] [:error] [pid 8365] [client 192.168.0.128:50717] PHP Notice: Use of undefined constant SLM_ANZAHL - assumed 'SLM_ANZAHL' in /var/www/include/config.php on line 62
因为它将其视为&#39; SLM_ANZAHL&#39; - 对?没有想到这一点,因为它表示为&#34;错误&#34;