代码之家  ›  专栏  ›  技术社区  ›  Rounin

在“我的PHP函数”页面的顶部添加名称空间会导致显示一个完全空白的页面(没有错误)

  •  0
  • Rounin  · 技术社区  · 5 年前

    我在用 PHP 7.3.25版 .

    我已经开始尝试 PHP名称空间 在服务器端(尤其是因为我使用 埃斯莫杜勒斯 在客户端,我完全理解名称空间的优点),但我在第一个障碍上就失败了——这可能是一个明显的新手错误,但没有错误显示,很难猜测我犯了什么错误。

    我有一个很长的全球功能页面——在网站上的每个页面之前都包含了这些功能——我已经预先准备好了:

    namespace mySetup\myFunctions;
    

    在网站的每一页上,我都包含了这一长页的全局函数,使用:

    include $_SERVER['DOCUMENT_ROOT'].'/my-setup/my-functions.php';
    
    getMyPage();
    

    我猜不出现在出了什么问题,因为结果(每一页)现在是一个完全没有错误的空白页。

    虽然长页面只包含函数(没有类),但我想知道是否需要更改函数调用 getMyPage(); 致:

    \mySetup\myFunctions\getMyPage();
    

    但这也不管用。所以我有点不知所措,甚至猜不出基本的、低级的考虑出了什么问题,或者我错过了什么。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Zoli Szabó    5 年前

    是的,在使用 use 语句(通常在名称空间声明之后,如果有的话,或者在文件开头)。

    <?php
    
    use mySetup\myFunctions\getMyPage;
    
    ...
    
    include $_SERVER['DOCUMENT_ROOT'].'/my-setup/my-functions.php';
    
    getMyPage();
    
    

    请注意 use ... 语句本身不导入函数。它只会为它创建一个短别名,因此您不必使用FQN。 这个 official documentation 这对学习基础知识非常有用,但你只需要记住“导入”关键字的这种轻微误用。

    编辑:名称空间可用于自动加载(自动导入)类(不支持函数),请看 spl_autoload_register 对于基础知识,请考虑使用 Composer .

    编辑2:空白页也意味着关闭错误报告/显示的致命错误。检查PHP日志,错误就会出现。

    推荐文章