gpt4 book ai didi

PHP 命名空间在 include 或 require 后不会改变

转载 作者:行者123 更新时间:2023-12-04 16:57:54 24 4
gpt4 key购买 nike

其实我的问题很简单。在 PHP 中,我可以在文件中定义命名空间,这些文件将通过 require 或 include 加载。
例子:

index.php 的内容

namespace test;
require('example.php');
die(__NAMESPACE__);

example.php 的内容
namespace example;
echo "hello world";

如果您执行此代码,输出将是“test”,因为如果您包含具有另一个 namespace 的文件, namespace 将不会更改。

但是你能告诉我为什么吗?我怎么能想象解析器?
它可能看起来像:
namespace test{}
namespace example{}
// and here it goes on with test, but why I didn´t said namespace test
namespace test{}

最佳答案

在 PHP 文件中,namespace 之后的所有代码声明将属于该命名空间。这包括 require声明。

每个 PHP 文件中都有自己的值 __NAMESPACE__namespace 时填充被宣布。要访问另一个文件的命名空间,您可以在 example.php 中创建一个方法。返回 __NAMESPACE__ .见 this question .

或者,您可以使用 get_current_namespaces()但这不会告诉您哪个命名空间属于哪个文件。

关于PHP 命名空间在 include 或 require 后不会改变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23112306/

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