给定文件1具有命名空间ns_1,文件2具有命名空间ns_2,如果文件1和文件2包含在文件3中,则无法知道命名空间ns_1和ns_2已被加载。
唯一的方法是使用'class_exists'函数,可以使用'get_declared_classes'获取具有特定命名空间的类列表。简而言之,给定所有已声明的类名,获得的数据可用于查找匹配的命名空间-
function namespaceExists($namespace) { $namespace .= "\\"; foreach(get_declared_classes() as $name) if(strpos($name, $namespace) === 0) return true; return false; }
- - 要么 - -
<?php namespace FirstNamespace; class new_class {} namespace SecondNamespace; class new_class {} namespace ThirdNamespace\FirstSubNamespace; class new_class {} namespace ThirdNamespace\SecondSubNamespace; class new_class {} namespace SecondNamespace\FirstSubNamespace; class new_class {} $namespaces=array(); foreach(get_declared_classes() as $name) { if(preg_match_all("@[^\\\]+(?=\\\)@iU", $name, $matches)) { $matches = $matches[0]; $parent =&$namespaces; while(count($matches)) { $match = array_shift($matches); if(!isset($parent[$match]) && count($matches)) $parent[$match] = array(); $parent =&$parent[$match]; } } } print_r($namespaces);
输出结果
这将产生以下输出-
Array ( [FirstNamespace] => [SecondNamespace] => Array ( [FirstSubNamespace] => ) [ThirdNamespace] => Array ( [FirstSubNamespace] => [SecondSubNamespace] => ) )
创建了不同的命名空间(FirstNamespace,SecondNamespace ..),并声明了空类(new_class)。创建一个命名空间数组,并在声明的类中运行一个foreach循环。正则表达式匹配完成,并且将显示在该特定环境中定义的命名空间。
声明以下命名空间时: 我得到了这个错误: 所以我想知道PHP中的命名空间是否可以以数字开头?
Nrwl说在这里问。看来我是第一个! 我搞错了。我用nx原理图创建了一个名为Angular的项目。如果可能,我想重命名名称空间,以便访问我的库,如: 而不是: 我尝试在angular-cli.json和package.json中更改项目名称,但我非常确定这不是答案。 此外,nx将不能作为标记使用,因为它已经在其他地方使用。我建议使用nrwl nx。 编辑:划掉那个。我没有足够的声誉来创建新标签。如
问题内容: 想知道是否有人在使用新功能通过PHP 5.3对类进行命名空间时是否遇到了此问题。 我正在使用单独的类来生成动态类调用,以在应用程序中定义用户类型。基本上,类定义器采用类型的整数表示形式并解释它们,返回一个包含要用作该用户模型的类名的字符串。 我在全局范围内定义了具有该名称的用户类型的对象模型,但是在Editor名称空间中,该用户的编辑器具有另一个名称相同的对象。由于某些原因,PHP不允
有什么方法可以获得套接字上注册的所有命名空间的列表吗? 例如,假设某个客户机连接到一个命名空间:`socket=io('/some-nsp'); 它们现在自动地位于名称空间中,因为socket.io并不阻止创建随机名称空间。 如果我想查看所有现有命名空间的列表并断开这些用户的连接,我如何获得这样的列表。 我尝试过,但这只是一个循环的垃圾列表。 是否有一种“正式”的方法来获取套接字上注册的所有名称空
问题内容: 因此,我拥有这个现有的数据库架构,其中包含许多要使用JPA / Hibernate建模的表。每个表具有同一组,每组包含30个其他列(以允许运行时扩展记录的字段数)。 我计划为每个表定义简单的类 然后在公共类中定义公共附加参数 尽管这行得通,但我不喜欢此类的硬编码性质。 我想将每组字符串,长字段和双精度字段建模为一个附加参数组,然后将其设置为0..9组。如果需要的话,这样我以后可以轻松添
我还尝试使用了optional(),但唯一的区别是regex包含了一个‘?’在最后。JSON断言仍然失败。 在存根中,两个结果都返回,但对于测试,我希望测试也能成功。测试断言纯粹是在每个属性的最后一次出现时生成的吗?难道没有可能在数组上使用类似'optional()'的东西吗?