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

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

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

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
range"); 
// Теперь $input===array("red", "orange") 
Последний пример показывает, что в качестве параметра $Repl мы можем указать и 
обычное, строковое значение, а не массив из одного элемента. 
Переменные и массивы 
array compact(mixed $vn1 [, mixed $vn2, …]) 
Функция compact(), впервые появившаяся в PHP версии 4, упаковывает в массив 
переменные из текущего контекста (глобального или контекста функции), заданные 
своими именами в $vn1, $vn2 и т. д. При этом в массиве образуются пары с ключа- 

ми, равными содержимому $vnN, и значениями соответствующих переменных. Вот 
пример использования этой функции: 
$a="Test string"; 

Глава 13. Работа с массивами 235 
$b="Some text"; 
$A=compact("a","b"); 
// теперь $A===array("a"=>"Test string", "b"=>"Some text") 
Почему же тогда параметры функции обозначены как mixed? Дело в том, что они 
могут быть не только строками, но и списками строк. В этом случае функция 
после- 
довательно перебирает все элементы этого списка, и упаковывает те переменные из 

текущего контекста, имена которых она встретила. Более того — эти списки могут, 
в 
свою очередь, также содержать списки строк, и т. д. Правда, последнее 
используется 
сравнительно редко, но все же вот пример: 
$a="Test"; 
$b="Text"; 
$c="CCC"; 
$d="DDD"; 
$Lst=array("b",array("c","d")); 
$A=compact("a",$Lst); 
// теперь $A===array("a"=>"Test", "b"=>"Text", "c"=>"CCC", "d"=>"DDD") 
void extract(array $Arr [, int $type] [, string $prefix]) 
Эта функция производит действия, прямо противоположные compact(). 
А именно, она получает в параметрах массив $Arr и превращает каждую его пару 
ключ=>значение в переменную текущего контекста. 
Параметр $type предписывает, что делать, если в текущем контексте уже 
существует 
переменная с таким же именем, как очередной ключ в $Arr. Он может быть равен 
одной из констант, перечисленных в табл. 13.1 
Таблица 13.1. Поведение функции extract в случае совпадения переменных 
Константа Действие 
EXTR_OVERWRITE Переписывать существующую переменную (по умолчанию) 
EXTR_SKIP Не перезаписывать переменную, если она уже существует 
EXTR_PREFIX_SAME В случае совпадения имен создавать переменную с име- 
нем, предваренным префиксом из $prefix. Надо сказать, 
что на практике этот режим должен быть совершенно бес- 
полезен 
EXTR_PREFIX_ALL Всегда предварять имена создаваемых переменных пре- 
фиксом $prefix 
По умолчанию подразумевается EXTR_OVERWRITE, т. е. переменные перезаписыва- 
ются. Вот пара примеров применения этой функции: 
// Сделать все переменные окружения глобальными 

Часть IV. Стандартные функции PHP 236 
extract($HTTP_ENV_VARS); 
// То же самое, но с префиксом E_ 
extract($HTTP_ENV_VARS, EXTR_PREFIX_ALL, "E_"); 
echo $E_COMSPEC; // выводит переменную окружения COMSPEC 
Параметр $prefix имеет смысл указывать только тогда, когда вы применяете 
режимы EXTR_PREFIX_SAME или EXTR_PREFIX_ALL. 
Вообще говоря, использование extract() и compact() может быть оправдано 
лишь для небольших массивов, да и то только в шаблонах, а в остальных случаях 
считается признаком дурного тона. Впрочем, если ваш дизайнер никак не может по- 

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

Здесь вы должны загодя позаботиться, чтобы ключи $Entry ненароком не затерли нужные переменные. Этого можно добиться, например, назвав все важные перемен- ные с прописной буквы (например, $Book и $Entry), а все ключи — с маленькой, как и было сделано немного выше. Создание списка – диапазона чисел list range(int $low, int $hi
 
<<-[Весь Текст]
Страница: из 287
 <<-