Итак, как мне сделать имя класса глобальным в PHP? - PullRequest
1 голос
/ 23 декабря 2011

У меня есть класс с именем «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 ]

3 голосов
/ 23 декабря 2011

Класс должен быть определен перед его использованием, поэтому вы должны использовать require или require_once, чтобы включить файл в определение PostageApp класса.

Для классов нет понятия «глобальный».

Если вы не хотите добавлять require, я советую вам изучить автозагрузку .

2 голосов
/ 23 декабря 2011

Если вы абсолютно уверены, что класс был определен во включаемом файле, только одна вещь влияет на его видимость в другом файле: я полагаю, класс PostageApp находится в другом пространстве имен , так как это единственная причина, по которой другой класс может иметь другую область видимости в PHP.

Ключевое слово global необходимо только для глобальных переменных. Функции и классы всегда доступны в любой области, как только они были объявлены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...