2013-08-27 154 views
2

我使用的是自动加载了我的课程,如PHP spl_autoload做法:静态功能

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调用一个函数,并且根本不使用任何类,它就不会被加载。

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

回答

0

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

+0

这意味着spl_autoload不应该包含经典的php函数?我的意思是 - 奇怪的是,如果我使用任何类,它们最终会被加载.. – Enn

+0

不是真的,这是一个自动加载器。无论何时你要求一个课程而且它还没有,它都将使用自动加载器。所以你放在那里的所有东西,只会在你第一次使用新课程时被称为。 –

+0

因此,基本上我需要(或应该?)做的是将自动加载之外的那些功能包括在内?我的意思是我喜欢自动加载功能的方式:) – Enn