» Главная
eXcode.ru » Статьи » PHP » Общие
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 2





Ведущий раздела: LedWorm
Описание: Общие статьи по PHP



«1» «2» «3» «4» «5» «6» «7» «8» «9» «10» «11» «12» «13» «14» «15»  ...

Возврат функцией ссылки
До сих пор я рассматривал лишь функции, которые возвращают определенные значения — а именно, копии величин, использованных в инструкции return. Заметьте, это были именно копии, а не сами объекты.


Передача функций "по ссылке"
Я отнюдь не случайно заключил последние два слова названия этого раздела в кавычки — дело в том, что как таковая, передача функции по ссылке в PHP не поддерживается. Однако, т. к. это слишком часто может быть полезным, в PHP есть понятие "функциональной переменной".


Условно определяемые функции
Предположим, у нас в программе где-то устанавливается переменная $OS_TYPEв значение win, если сценарий запущен под Windows 9x, и в unix, если под Unix. Как известно, в отличие от Unix, в Windows нет такого понятия, как владелец файла, а значит, стандартная функция chown()(которая как раз и назначает владельца для указанного файла) там просто не имеет смысла. В некоторых версиях PHP для Windows ее может в этой связи вообще не быть.


Вложенные функции
Стандарт PHP не поддерживает вложенные функции. Однако он поддерживает нечто, немного похожее на них. Вместо того чтобы, как и у переменных, ограничить область видимости для вложенных функций своими "родителями", PHP делает их доступными для всей остальной части программы, но только с того момента, когда "функция-родитель" была из нее вызвана.


Рекурсия
Конечно, в PHP поддерживаются рекурсивные вызовы функций, т. е. вызовы функцией самой себя (разумеется, не до бесконечности, а в соответствии с определенным условием). Это бывает чрезвычайно удобно для таких задач, как, например, обход всего дерева каталогов вашего сервера (с целью подсчитать суммарный объем, который занимают все файлы), или для других задач.


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


Массив $GLOBALS
В принципе, есть и второй способ добраться до глобальных переменных. Это — использование встроенного в язык массива $GLOBALS. Последний представляет собой хэш, ключи которого есть имена глобальных переменных, а значения — их величины.


Глобальные переменные
Если вы, прочитав последние строки, уже начали испытывать сочувствие к функциям в PHP (или, если вы прикладной программист, сочувствие к разработчикам PHP), то спешу вас заверить: разумеется, в PHP есть способ, посредством которого функции могут добраться и до любой глобальной переменной в программе (не считая, конечно, передачи параметра по ссылке).


Локальные переменные
Наконец-то мы подошли вплотную к вопросу о "жизни и смерти" переменных. Действительно, во многих приводимых выше примерах мы рассматривали аргументы функции (передаваемые по значению, а не по ссылке) как некие временные объекты, которые создаются в момент вызова и исчезают после окончания функции.


Переменное число параметров
Как мы уже знаем, функция может иметь несколько параметров, заданных по умолчанию. Они перечисляются справа налево, и их всегда фиксированное количество. Однако иногда такая схема нас устроить не может. Например, пусть мы захотели написать функцию в стиле echo, т. е., функцию, которая принимает один или более параметров (сколько именно — неизвестно на этапе определения функции). Пусть она должна вывести эти параметры "лесенкой" — каждый следующий на новой строке с отступом от предыдущего (согласен, пример немного надуман, но все же вполне подходит для иллюстрации функций с переменным количеством параметров).


«1» «2» «3» «4» «5» «6» «7» «8» «9» «10» «11» «12» «13» «14» «15»  ...

Имя:

Пароль:



Регистрация

Что для вас важнее в ПО
Его размер
7% (9)
Его цена
7% (8)
Его простота и доступность
17% (20)
Его функциональность
64% (77)
Наличие дополнительных фич
0% (0)
Наличие русского языка
5% (6)
Графицеский интерфейс
1% (1)
Изготовитель
0% (0)

Проголосовало: 121
Сидит программист в столовой, обедает, суп ест. В очках такой, задумчивый, программу думает. Народу никого, все уже поели, ушли. Подходит к нему официантка и заигрывает:
- Если Вы хотите хорошо провести время, то меня зовут Маша!
Программист медленно возвращается на землю и смотрит на официантку отрешенным взглядом и на автопилоте спрашивает:
- А если не хочу, то как Вас зовут?!
Рейтинг: 6.4/10 (5)
Посмотреть все анекдоты