那么如何在PHP中创建一个全局类名?

时间:2011-12-23 10:02:53

标签: php class scope

我有一个名为“user”的类,其函数为“createAccount”。在其中我喜欢通过PostageApp :: mail

访问另一个类

但由于这个课程超出了范围,因此无法访问。 global接缝只适用于变量。那么如何让一个类名全局?

include_once('../../ext_scripts/postageapp_class.inc');

class user {
  function createAccount(...) {
    global PostageApp;

    [...]

    $result = PostageApp::mail($mailTo, '', 'verify_email', array());
  }
}

2 个答案:

答案 0 :(得分:3)

必须在使用之前定义该类,因此您可以使用requirerequire_once将文件包含在PostageApp类定义中。

课堂上没有全球概念。

如果您不想添加require,我建议您查看autoloading

答案 1 :(得分:2)

如果您完全确定已在包含文件中定义了该类,则只有一件事影响其在另一个文件中的可见性:我认为PostageApp类在另一个namespace中,如这是另一个类在PHP中具有不同范围的唯一原因。

关键字global仅对全局变量有用。只要声明了函数和类,就可以在任何范围内访问它们。