Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP遗留代码之谜:变量名区分大小写_Php_Variables_Legacy Code - Fatal编程技术网

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

PHP遗留代码之谜:变量名区分大小写,php,variables,legacy-code,Php,Variables,Legacy Code,我试图使客户端的遗留PHP应用程序适用于PHP5.3。我经常看到这种代码: $SETTINGS[cart][picsize] = "100"; $settings[user][time] = 123; 1) PHP中的变量不区分大小写吗?$SETTINGS与$SETTINGS相同吗 2) 对于购物车,图片大小等,我得到了“未定义常量”,它们似乎在代码库中的任何地方都没有定义。一些旧版本的PHP是否允许引用不带引号的数组索引,或者这里发生了什么 变量区分大小写,函数和类不区分大小写 可能是您的P

我试图使客户端的遗留PHP应用程序适用于PHP5.3。我经常看到这种代码:

$SETTINGS[cart][picsize] = "100";
$settings[user][time] = 123;
1) PHP中的变量不区分大小写吗?
$SETTINGS
$SETTINGS
相同吗

2) 对于
购物车
图片大小
等,我得到了
“未定义常量”
,它们似乎在代码库中的任何地方都没有定义。一些旧版本的PHP是否允许引用不带引号的数组索引,或者这里发生了什么

  • 变量区分大小写,函数和类不区分大小写

  • 可能是您的PHP配置关闭了某个级别的错误报告,而您从未看到错误。它可能对您有效,因为这些未定义的常量将转换为字符串。(信用证:)。您应该始终使用引号引用关联数组索引,除非它们不是字符串。除非定义了常量,否则字符串应始终被引用。您不必引用整数、double或bool

  • $SETTINGS[“购物车”][“图片大小”]=100

    $settings[user][time]=123


    就变量而言,这两种说法完全不同,也没有任何关联。不管是否只有大写和小写的区别。它们仍然不一样。

    PHP将把未定义的常量转换为字符串,并将它们作为字符串处理(同时发出警告)。不过,在错误日志中最好不要这样做。您正在运行哪个版本的PHP?@watcher我相信它们会引起注意,而不是警告。@Sverri感谢您的正确性,现在编辑我的评论为时已晚。