了解将 PHP5 代码转换为 PHP8 时的 $variable[值] [重复]

Understanding $variable[value] when converting PHP5 code to PHP8 [duplicate]

提问人:level42 提问时间:11/14/2023 更新时间:11/14/2023 访问量:40

问:

我正在做一个项目,我正在将一个为 PHP5(我相信)编写的 WordPress 插件转换为 PHP8.2。

我之前没有使用PHP代码的主要经验。

它的长处和短处是,我在这个插件中有一个模板文件,它引用了数组中的很多内容。$variable[value]

例:

        $cleanedPropertyName = '';
        if (!empty($value[PropertyName])) {
            $cleanedPropertyName = $value[PropertyName];
            if (strpos($cleanedPropertyName, ",") > 0) {
                $cleanedPropertyName = substr($cleanedPropertyName, 0, strpos($cleanedPropertyName, ","));
            }
        }

这个原始代码来自较旧的PHP版本,为零件生成了大量的“未定义的常量”错误。[value]

我可以通过简单地将值放在引号中来解决这个问题(例如,删除这些错误),但我想检查我正在做的事情是否是正确的,或者这些是否是故意在旧版本的 PHP 中编写的。['value'][values]

简单地将引号放在引号内是将此代码转换为 PHP8 兼容性的正确解决方案吗?[value]

php 变量 代码迁移

评论

2赞 GrumpyCrouton 11/14/2023
将其放在引号中是解决问题的正确方法。目前,它将其读取为不存在的变量(更具体地说是常量),这使得它回退到将其视为字符串(例如),但也会产生您看到的通知。['PropertyName']
0赞 level42 11/14/2023
我有一些情况,这里会是相同的解决方案吗?例如: 成为$variable[value][value]$value[Address][City]$value['Address']['Province']
1赞 GrumpyCrouton 11/14/2023
是的,这是正确的。
1赞 level42 11/14/2023
棒!感谢您的见解!

答: 暂无答案