Вот мой сценарий:
$foo = bar;
one()
{
two()
{
three()
{
// need access to $foo here
}
}
}
Я знаю, что мог бы передать $ foo во все три функции, но это не совсем идеально, потому что вы можете или не можете требовать этого, кроме того, уже есть другие параметры, и я не хочу добавлять в этот список если я могу предотвратить это. Только когда вы доберетесь до three()
вам нужно $foo
. Я знаю, что мог бы также указать global $foo;
в three()
, но я читал, что это не очень хорошая практика.
Есть ли другой способ $foo
сделать доступным для three()
, не делая ни одного из них?
Чтобы предоставить немного больше информации, в этом случае $ foo - это информация о том, как подключиться к базе данных, например, сервер, пользователь, пароль, но только в three()
эта информация действительно нужна. Конечно, я мог бы подключиться к базе данных прямо при загрузке документа, но это не нужно, если документ может не понадобиться.
Есть идеи?
ОБНОВЛЕНИЕ : Извините, я не хотел иметь «функцию» в начале каждой функции, подразумевая, что я создал их вложенным способом.