我今天早上遇到了关于PHP名称空间的问题,我的一个朋友问我是否知道什么是错的,但我不确定。我不记得整个代码片段,但基本上这个简短的片段让我感到困惑:
try {
echo "A";
$bootstrap = new \Test\Built\Framework\Bootstrap;
echo "B";
} catch (Exception $e) {
echo $e->getMessage();
throw $e;
}
当脚本执行时,我可以看到“A”被打印出来,但不是“B”,因为没有发现错误(也没有抛出异常)。
由于我不熟悉PHP命名空间,我只有两个问题:
$bootstrap = new \Test\Built\Framework\Bootstrap;
实际上做了什么?怎么加载?答案 0 :(得分:2)
可能是Class' Test \ Built \ Framework \ Bootstrap'找不到,并且php display_errors 设置为关闭。
这就是错误消息
的原因Fatal error: Class 'Test\Built\Framework\Bootstrap' not found in ...
它没有打印出来。脚本回显A并且出口有致命错误。
代码
$bootstrap = new \Test\Built\Framework\Bootstrap;
从类
创建一个新对象<?php namespace Test\Built\Framework;
class Bootstrap {}
?>
要在脚本中使用Bootstrap类,您必须专门包含它或使用自动加载器。