Доступ к переменным и методам за пределами определений классов

Лично я имею папку зависимостей как часть моих проектов и храню ссылочные библиотеки там.

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

использование всех зависимостей во время компиляции для каждого проекта означает, что несколько лет по линии, когда вещи шли дальше, я могу все еще создать любую часть проекта, не волнуясь о повреждении других частей. Обновление до новой версии библиотеки является просто случаем замены файла и восстановления связанных компонентов, не слишком трудных для управления в случае необходимости.

Однако я нахожу большинство библиотек, на которые я ссылаюсь, относительно маленькое взвешивание в на уровне приблизительно нескольких сотен Кбит, редко больше, который делает его меньшим количеством проблемы для меня, чтобы просто засунуть их в управление исходным кодом.

14
задан Alma Do 18 August 2016 в 08:52
поделиться

2 ответа

Функции вне любого класса являются глобальными и могут быть вызваны из любого места. То же самое с переменными ... просто не забудьте использовать глобальные переменные ...

например

<?php
function abc() {  }

$foo = 'bar';

class SomeClass {  
 public function tada(){
     global $foo;

     abc();
     echo 'foo and '.$foo;
 }
}
?>
28
ответ дан 1 December 2019 в 07:12
поделиться

функции определены на глобальном уровне; поэтому вам не нужно ничего делать, чтобы использовать их из метода вашего класса. глобальная область видимости - их можно назвать вне функции, даже если они были определены внутри и наоборот.


Для вашей переменной $ foo , с другой стороны, вы должны использовать ключевое слово global внутри каждого метода / функции, к которой вы хотите получить доступ это.

Для получения дополнительной информации, не стесняйтесь читать страницу о Область видимости переменной , которая должна предоставить вам интересную информацию; -)


Редактировать после комментария:

Каждый метод / функционировать независимо от этого определены внутри класса или нет?

Если «функция» определена внутри класса, она больше не называется «функцией», даже если это все еще используется функция : это называется "методом"

Методы могут использоваться статически:

MyClass::myMethod();

или динамически:

$obj = new MyClass();
$obj->myMethod();

В зависимости от того, были ли они определены как статические или нет.


В качестве примечания: если вы новичок в ООП в PHP, вам определенно следует потратить некоторое время на то, чтобы прочитать раздел руководства Классы и объекты (PHP 5) : он многое объяснит.

2
ответ дан 1 December 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: