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



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







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



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

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


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


Инструкция return
Синтаксис оператора return абсолютно тот же, что и в Си, за исключением одной очень важной детали. Если в Си функции очень редко возвращают большие объекты (например, структуры), а массивы они не могут возвратить вовсе (это явный прокол в концепции Си), то в PHP можно использовать returnабсолютно для любых объектов (какими бы большими они ни были), причем без заметной потери быстродействия.


Общий синтаксис определения функции
В общем виде синтаксис определения функции таков:

function имя_функции(арг1[=зн1], арг2[=зн2], ... аргN[=знN])
{ операторы_тела_функции; }


Пример функции на PHP
Как водится, сразу начну с примера. Предположим, нам необходимо в программе очень часто находить в массиве-списке наибольший элемент, который в то же время меньше какого-то, наперед заданного числа. А именно, нас интересует его номер в массиве (если такого числа в массиве нет, то номер полагается равным .1). Напишем для этой цели функцию (такое описание называется определением функции, и оно, конечно, должно быть единственным в пределах сценария).


Функции и области видимости
По синтаксису описания функций PHP, на мой взгляд, довольно близок к идеальной концепции, которую многие программисты лелеют в своем воображении. Вот несколько основных достоинств этой концепции:


Сериализация
Возможно, после прочтения описания функций implode()и explode() вы обрадовались, насколько просто можно сохранить массив, например, в файле, а затем его оттуда считать и быстро восстановить. Если вас посетила такая мысль, то, скорее всего, вы уже успели в ней разочароваться: во-первых, таким образом можно сохранять только массивы-списки (потому что ключи в любом случае теряются), а во-вторых, ничего не выйдет с многомерными массивами.


Списки и строки
Есть несколько функций, которые чрезвычайно часто используются при программировании сценариев. Среди них — функции для разбиения какой-либо строки на более мелкие части (например, эти части разделяются в строке каким-то специфическим символом типа |), и, наоборот, слияния нескольких небольших строк в одну большую, причем не впритык, а вставляя между ними разделитель. Первую из этих возможностей реализует стандартная функция explode(), а вторую — implode(). Рекомендую обратить особое внимание на указанные функции, т. к. они применяются очень часто.


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


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


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

Имя:

Пароль:



Регистрация

Вы жалеете, что Билли уходит на пенсию?
Гореть ему в АДУ!!!
41% (53)
Побыстрее бы ушел!
5% (6)
Уйдет он, придет другой!
28% (36)
А мне все равно, я Mac юзаю!
2% (3)
Жаль, дядю Билла :(
12% (15)
Может он передумает?!
13% (17)

Проголосовало: 130
- Алло!!! Я у вас купил компьютер и он сдох, а была пожизненая гарантия?!
- Ну все - гарантия кончилась...
Рейтинг: 7.5/10 (2)
Посмотреть все анекдоты

 
eXcode.ru » Статьи » PHP » Общие