SHPORA.net :: PDA | |
Main FAQ гуманитарные науки естественные науки математические науки технические науки Переменные и массивы compact(mixed $vn1 [, mixed $vn2, …]) Функция compact() упаковывает в массив переменные из текущего контекста (глобального или контекста функции), заданные своими именами в $vn1, $vn2 и т. д. При этом в массиве образуются пары с ключами, равными содержимому $vnN, и значениями соответствующих переменных. Вот пример использования этой функции: $a="Test string"; $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") extract(array $Arr [, int $type] [, string $prefix]) Функция extract() производит действия, прямо противоположные compact(). А именно, она получает в параметрах массив $Arr и превращает каждую его пару ключ=>значение в переменную текущего контекста. |