我正在努力使客户端的遗留PHP应用程序适用于PHP 5.3。我经常看到这种代码:
$SETTINGS[cart][picsize] = "100";
$settings[user][time] = 123;
1)PHP中的变量是否不区分大小写? $SETTINGS
与$settings
相同吗?
2)我为'undefined constant'
,cart
等获得了picsize
,而且似乎没有在代码库中的任何位置定义它们。一些旧版本的PHP是否允许引用没有引号的数组索引,或者这里发生了什么?
答案 0 :(得分:2)
变量区分大小写,函数和类不区分。
可能是您的PHP配置已关闭某个级别的错误报告,并且您从未看到错误。它可能对你有用,因为那些未定义的常量将变成字符串。 (信用:@watcher)。除非它们不是字符串,否则应始终使用引号引用关联数组索引。除非您定义了常量,否则应始终引用字符串。您不必引用整数,双引号或布尔值。
$SETTINGS["cart"]["picsize"] = 100;
$settings[user][time] = 123;
这两个陈述是完全不同的,就变量而言,它们没有任何关系。无论如何只有大写和小写的区别。它们仍然不一样。