没有不值得去解决的问题,也没有不值得去学习的技术!

基于 数组相关函数 操作数组后,同样的输入,在不同执行顺序下的差异的分析(include、引用)

1、参考:在 Laravel 6 中,基于 数组相关函数 操作数组后,同样的输入,在不同执行顺序下的差异的分析(include、引用)。https://www.shuijingwanwq.com/2023/06/13/7716/ 2、当时的解决方案:将 $value 替换为 $sectionSettingValue,临时规避掉引用的变量名重名的问题 3、之后又存在类似的问题,需要能够快速定位是哪些变量重名导致的问题。决定将执行有误的文件中的变量都在文件开头打印出来。最后将打印结果中不为 null 的,全部 unset() 掉。


\Illuminate\Support\Facades\Log::info(
    'schema.v2.1.80',
    [
        '$sectionKey' => $sectionKey ?? null,
        '$section' => $section ?? null,
        '$blockKey' => $blockKey ?? null,
        '$block' => $block ?? null,
        '$blockOrderKey' => $blockOrderKey ?? null,
        '$blocks' => $blocks ?? null,
    ]
);


4、打印结果如下,确认在上一次的执行后,变量:$sectionKey、$section、$blockKey、$block、$blockOrderKey、$type 皆不为 null,全部需要销毁掉。


[2023-09-04 10:43:45] local.INFO: schema.v2.1.80 {
    "$sectionKey": "image-1",
    "$section": {
        "type": "image",
        "disabled": false,
        "settings": {
            "heading": "",
            "heading_align": "center"
        },
        "blocks": {
            "column-0": {
                "type": "column",
                "settings": {
                    "image": "https://xxx-s3.s3.us-east-2.amazonaws.com/image/736589fac73c7dfdbf61efadb49a95fb9af16efb.jpeg",
                    "mobile_image": "https://cdn.xxx.com/image/2022/03/200062b82e8cbae7cf7c48b425a33260686fd4aa3e6ed656901cb4cc7a283487.jpeg",
                    "url": "/"
                }
            },
            "column-1": {
                "type": "column",
                "settings": {
                    "image": "https://xxx-s3.s3.us-east-2.amazonaws.com/image/736589fac73c7dfdbf61efadb49a95fb9af16efb.jpeg",
                    "mobile_image": "https://cdn.xxx.com/image/2022/03/200062b82e8cbae7cf7c48b425a33260686fd4aa3e6ed656901cb4cc7a283487.jpeg",
                    "url": "/"
                }
            }
        }
    },
    "$blockKey": "column-1",
    "$block": {
        "type": "column",
        "settings": {
            "image": "https://xxx-s3.s3.us-east-2.amazonaws.com/image/736589fac73c7dfdbf61efadb49a95fb9af16efb.jpeg",
            "mobile_image": "https://cdn.xxx.com/image/2022/03/200062b82e8cbae7cf7c48b425a33260686fd4aa3e6ed656901cb4cc7a283487.jpeg",
            "url": "/"
        }
    },
    "$blockOrderKey": 8,
    "$type": [
        "search",
        "all_collections"
    ]
} 


5、销毁变量的代码如下


unset($sectionKey, $section, $blockKey, $block, $blockOrderKey, $type);


PHP / Laravel / Yii2 老项目维护与长期技术支持

如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。

适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护

可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查

如需咨询,请联系我,并注明:PHP 维护咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理