Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

 
liveinternet.ru: показано количество просмотров и посетителей

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
операторов в цикле for: он просто не нужен, ведь 
указатель 
на текущий элемент и так смещается функцией each(). 
Перебор в стиле PHP 4 
Прямой перебор массивов применялся столь часто, что разработчики PHP решили в 
четвертой версии языка добавить специальную инструкцию перебора массива — 
foreach. Мы уже рассматривали ее ранее. Вот как с ее помощью можно перебрать и 
распечатать наш массив людей: 
foreach($Names as $k=>$v) echo "Возраст $k — $v\n"; 

Часть III. Основы языка PHP 178 
Просто, не правда ли? Рекомендую везде, где не требуется совместимость с PHP 
третьей версии, использовать именно этот способ перебора, поскольку он работает 
с 
максимально возможной скоростью — даже быстрее, чем перебор списка при помо- 
щи for и числового счетчика. 
Есть и еще одна причина предпочесть этот вид перебора "связке" цикла for с 
eaсh(). Дело в том, что при применении foreach мы указываем имя переби- 
раемого массива $Names только в одном месте, так что когда вдруг потребу- 
ется это имя изменить, нам достаточно будет поменять его только один раз. 
Наоборот, использование Reset() и each() заставит нас в таком случае из- 
менять название переменной в двух местах, что потенциально может привести 
к ошибке. Представьте, что произойдет, если мы случайно изменим операнд 
each(), но сохраним параметр Reset()! 
Списки и строки 
Есть несколько функций, которые чрезвычайно часто используются при программи- 
ровании сценариев. Среди них — функции для разбиения какой-либо строки на более 

мелкие части (например, эти части разделяются в строке каким-то специфическим 
символом типа |), и, наоборот, слияния нескольких небольших строк в одну боль- 
шую, причем не впритык, а вставляя между ними разделитель. Первую из этих воз- 
можностей реализует стандартная функция explode(), а вторую — implode(). Ре- 
комендую обратить особое внимание на указанные функции, т. к. они применяются 
очень часто. 
Функция explode() имеет следующий синтаксис: 
list explode(string $token, string $Str [, int $limit]) 
Она получает строку, заданную в ее втором аргументе, и пытается найти в ней 
под- 
строки, равные первому аргументу. Затем по месту вхождения этих подстрок строка 

"разрезается" на части, помещаемые в массив-список, который и возвращается. 
Если 
задан параметр $limit, то учитываются только первые ($limit-1) участков "раз- 
реза". Таким образом, возвращается список из не более чем $limit элементов. Это 

позволяет нам проигнорировать возможное наличие разделителя в тексте последнего 

поля, если мы знаем, что всего полей, скажем, 6 штук. Вот пример: 
$st="4597219361|Иванов|Иван|40|[email protected]|Текст, содержащий (|)!"; 
$A=explode("|",$st,6); // Мы знаем, что там только 6 полей! 
// теперь $A[0]="Иванов", ... $A[5]= "Текст, содержащий (|)!" 
list($Surname,$Name,$Age,$Email,$Tel)=$A; // распределили по переменным 

Глава 10. Ассоциативные массивы 179 
Конечно, строкой разбиения может быть не только один символ, но и небольшая 
строка. Не перепутайте только порядок следования аргументов при вызове функции! 

Функция implode() и ее синоним join() производят действие, в точности обратное 
вызову explode(). 
string implode(string $glue, list $List) или 
string join(string $glue, list $List) 
Они берут ассоциативный массив (обычно это список) $List, заданный в ее первом 
параметре, и "склеивают" его значения при помощи "строки-клея" $glue во втором 
параметре. Примечательно, что вместо списка во втором аргументе можно переда- 
вать любой ассоциативный массив — в этом случае будут рассматриваться только 
его 
значения. 
Рекомендую вам чаще применять функции implode() и explode(), а не писать са- 
мостоятельно их аналоги. Работают они очень быстро. 
Сериализация 
Возможно
 
<<-[Весь Текст]
Страница: из 287
 <<-