PHP遗留代码之谜:变量名称中的区分大小写

时间:2014-09-02 20:55:08

标签: php variables legacy-code

我正在努力使客户端的遗留PHP应用程序适用于PHP 5.3。我经常看到这种代码:

$SETTINGS[cart][picsize] = "100";
$settings[user][time] = 123;

1)PHP中的变量是否不区分大小写? $SETTINGS$settings相同吗?

2)我为'undefined constant'cart等获得了picsize,而且似乎没有在代码库中的任何位置定义它们。一些旧版本的PHP是否允许引用没有引号的数组索引,或者这里发生了什么?

1 个答案:

答案 0 :(得分:2)

  1. 变量区分大小写,函数和类不区分。

  2. 可能是您的PHP配置已关闭某个级别的错误报告,并且您从未看到错误。它可能对你有用,因为那些未定义的常量将变成字符串。 (信用:@watcher)。除非它们不是字符串,否则应始终使用引号引用关联数组索引。除非您定义了常量,否则应始终引用字符串。您不必引用整数,双引号或布尔值。

  3. $SETTINGS["cart"]["picsize"] = 100;

    $settings[user][time] = 123;

    这两个陈述是完全不同的,就变量而言,它们没有任何关系。无论如何只有大写和小写的区别。它们仍然不一样。