【问题标题】:PHP spl_autoload practise with static functionsPHP spl_autoload 实践与静态函数
【发布时间】:2013-08-27 08:24:56
【问题描述】:

我正在为我的类使用自动加载,例如:

function my_autoloader($Class){
  // classes
  include "class/Class_User.php";

  // helpers
  include "helper/Url_Helper.php";

  }

spl_autoload_register('my_autoloader');

一切都很好,但是我有一些问题。 Url_Helper 的内容不是一个类,只是我在整个站点使用的一个经典 php 函数。 Url_Helper 中的函数只有在我启动一些(任何)类之后才能访问,例如:$User = new User();

在此之后,函数被加载。但是,如果我从 Url_Helper 调用一个函数并且根本不使用任何类,它就不会被加载。

你能解释一下这里发生了什么吗?

【问题讨论】:

    标签: php autoload spl


    【解决方案1】:

    你已经调试过了。你说当你不加载类时,助手不会被加载;这是真的。如果您希望您的助手始终可用,您应该将它们包含在您的自动加载功能之外。

    【讨论】:

    • 意思是 spl_autoload 不应该包含经典的 php 函数?我的意思是 - 如果我使用任何类,它们最终会被加载,这很奇怪..
    • 并非如此,这就是自动加载器的作用。每当您调用一个类但它还不存在时,它将使用自动加载器。所以你放在那里的所有东西,只会在你第一次使用新类时被调用。
    • 所以基本上我需要(或应该?)做的是将这些功能的包含放在自动加载之外?我的意思是我喜欢它在自动加载功能中的方式:)
    • 你没有正确使用你的自动加载器。或者至少不是为了它的意图。阅读此内容:codeforest.net/autoload-your-classes-in-php
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-14
    • 1970-01-01
    • 2014-12-28
    • 2010-12-26
    • 2013-10-23
    • 1970-01-01
    相关资源
    最近更新 更多