从PHP Fatal error: Uncaught Erro

作者: 怀老师 | 来源:发表于2020-05-16 16:53 被阅读0次

    使用框架习惯了,好多基础的东西都忘记了,今天遇到这个报错竟然还排查了半天。

    1.先说解决方法

    文件不存在,检查是否使用了自动加载,可能是composer的autoload配置错误。如果没有使用composer,确认自己是否require_once把文件包含进来。如果已经包含了,检查命名空间和类名大小写是否正确。命名空间前不能有任何输出。

    2.命名空间和文件路径都对,为什么还是not found

    因为我们还要使用require_once把要使用的类包含进来。

    3.使用了use为什么还是not found

    use 是逻辑引用,require是物理引用。必须把类包含进来才能使用。

    4.2和3都对,为什么还是not found

    检查下大小写,单词拼写

    5.谈谈自动加载

    现在用框架写项目一般很难看到第一行的require_once了,因为php5之后就有了自动加载机制,而框架带的composer文件,都已经帮我们把autoload配置好了,我们无需再关注类的物理位置,直接使用即可。

    6 autoload配置文件类后的2个反斜杠不写会怎么样

    A non-empty PSR-4 prefix must end with a namespace separator.
    另外注意PSR-4和PSR-0的配置里,"Foo\"结尾的命名空间分隔符必须加上并且进行转义,以防出现"Foo"匹配到了"FooBar"这样的意外发生。

    7 附一个无关的冷知识

    windows 下php.ini的 extension配置两种形式
    一种是省略php_前缀和.dll后缀
    一种是全称
    比如mongo和php_mongo.dll都可以,如果只写php_mongo就会报错
    

    相关文章

      网友评论

        本文标题:从PHP Fatal error: Uncaught Erro

        本文链接:https://www.haomeiwen.com/subject/oelrohtx.html