gpt4 book ai didi

PHP 命名空间别名的工作方式很奇怪

转载 作者:行者123 更新时间:2023-12-04 17:00:27 26 4
gpt4 key购买 nike

今天早上我遇到了一个关于 PHP 命名空间的问题,我的一个 friend 问我是否知道出了什么问题,但我不确定。我不记得整个代码片段,但基本上这个简短的片段让我感到困惑:

try {
echo "A";
$bootstrap = new \Test\Built\Framework\Bootstrap;
echo "B";
} catch (Exception $e) {
echo $e->getMessage();
throw $e;
}

当脚本执行时,我可以看到“A”被打印出来,而不是“B”,因为没有发现错误(也没有抛出异常)。

由于我对 PHP 命名空间不是很熟悉,所以我只有两个问题:
  • 代码不打印“B”或错误有什么问题?
  • 什么$bootstrap = new \Test\Built\Framework\Bootstrap;其实呢?它是如何加载的?
  • 最佳答案

    可能没有找到类 'Test\Built\Framework\Bootstrap' 并且 php display_errors 设置为 关闭 .

    这就是错误消息的原因

    Fatal error: Class 'Test\Built\Framework\Bootstrap' not found in ...

    它没有打印在场景中。该脚本回显 A 并以 fatal error 退出。

    代码
    $bootstrap = new \Test\Built\Framework\Bootstrap;
    从类创建一个新对象
    <?php namespace Test\Built\Framework;

    class Bootstrap {}

    ?>

    要在脚本中使用 Bootstrap 类,您必须专门包含它或使用自动加载器。

    关于PHP 命名空间别名的工作方式很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22787092/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com