Заносит элементы массива в переменные.
Синтаксис :
void list ( mixed ...)
Наподобие array(), функция list() не совсем функция, а языковая конструкция. Она используется для формирования списка переменных.
Пример использования функции list():
<?php $info = array("coffee", "brown", "caffeine"); // Выведем все переменные list($drink, $color, $power) = $info; echo "$drink is $color and $power makes it special.\n"; // Выведем первый и последний list($drink, , $power) = $info; echo "$drink has $power.\n"; // Выведем только третий list( , , $power) = $info; echo "I need $power!\n"; ?>Пример использования функции list():
<table> <tr> <th>Employee name</th> <th>Salary</th> </tr> <?php $result = mysql_query("SELECT id, name, salary FROM employees", $conn); while (list($id, $name, $salary) = mysql_fetch_row($result)) { echo " <tr>\n" . " <td><a href=\"info.php?id=$id\">$name</a></td>\n" . " <td>$salary</td>\n" . " </tr>\n"; } ?> </table>Пример использования функции list(): Индексы
<?php $info = array("coffee", "brown", "caffeine"); list($a[0], $a[1], $a[2]) = $info; var_dump($a); ?>
array(3) { [2]=> string(8) "caffeine" [1]=> string(5) "brown" [0]=> string(6) "coffee" }Функция поддерживается PHP 3, PHP 4, PHP 5
Упаковывает в массив переменные из текущего контекста.
Синтаксис :
array compact(mixed varname1 [, mixed $varname2, ...])
Функция compact() упаковывает в массив переменные из текущего контекста (глобального или
контекста функции), заданные своими именами в varname1, $varname2 и т.д. При этом в массиве
образуются пары с ключами, равными содержимому varnameN, и значениями соответствующих переменных.
Число аргументов может быть неопределенное.
Если в аргументе указано имя несуществующей переменной, он пропускается. Действие этой функции противоположно функции extract().
Пример использования функции compact():
<?php $city = "San Francisco"; $state = "CA"; $event = "SIGGRAPH""; $location_vars = array("city", "state"); $result = compact("event", "nothing_here", $location_vars); ?>В результате выполнения кода переменная $result имеет значение:
Array ( [event] => SIGGRAPH [city] => San Francisco [state] => CA )Почему же тогда параметры функции обозначены как mixed? Дело в том, что они могут быть не только строками, но и списками строк. В этом случае функция последнего перебирает все элементы этого списка, и упаковывает те переменные из текущего контекста, имена которых она встретила. Более того - эти списки могут, в свою очередь, также содержать списки строк, и т.д. Правда, последнее используется достаточно редко.
Пример использования функции compact():
<?php $a="Test"; $b="Text"; $c="CCC"; $d="DDD"; $List=array("b",array("c","d")); $A=compact("a",$List); ?>Теперь:
// теперь $A===array("a"=>"Test", "b"=>"Text", "c"=>"CCC", "d"=>"DDD")Функция поддерживается PHP 4, PHP 5
Импорт элементов массива в переменные.
Синтаксис :
int extract (array var_array [, int extract_type [, string prefix]])
Функция extract() используется для импортирования значений массива в строку. Эта функция берет ассоциативный массив var_array, использую ключ элемента как имя переменной, а значение элемента как значение полученной переменной. Для создания переменных из пары ключ => значение можно также использовать необязательные параметры extract_type и prefix.
- Замечание: начиная с PHP версии 4.0.5 эта функция возвращала количество извлеченных переменных.
- EXTR_OVERWRITE
- - Если переменная с таким именем уже существует, то ее значение будет заменено (значение по умолчанию).
- EXTR_SKIP
- - Если переменная с таким именем уже существует, то ее значение не будет заменено.
- EXTR_PREFIX_SAME
- - Если переменная с таким именем уже существует, то к ее имени добавится префикс, определенный в параметре prefix.
- EXTR_PREFIX_ALL
- - Ко всем образуемым переменным будет добавлен префикс prefix.
- EXTR_PREFIX_INVALID
- - Только при неправильных или числовых индексах массива к имени переменной будет добавлен префикс prefix.
- EXTR_IF_EXISTS
- - Если переменная с таким именем уже существует, то ее значение будет переписано. Иначе ничего не сделает. Это может быть полезно, если вы задали список всех переменных, а затем хотите извлеч только те переменные, которые были определены, например, из $_REQUEST. Этот флаг был добавлен в PHP 4.2.0
- EXTR_PREFIX_IF_EXISTS
- - Создает переменные с префиксом, если такие переменные без префикса уже существовали. В любом другом случае ничего не создает. Этот флаг был добавлен в PHP 4.2.0
- EXTR_REFS
- - Переменные создаются как ссылки. Это означает, что созданные переменные все еще ссылаются на значения соответствующих элементов массива var_array. Вы можете применять этот флаг как в одиночку, так и совместно с другими флагами. Этот флаг был добавлен в PHP 4.3.0
<?php /* Предположим, что $var_array массив, полученный при помощи функции wddx_deserialize */ $size = "large"; $var_array = array("color" => "blue", "size" => ""medium", "shape" => "sphere"); extract($var_array, EXTR_PREFIX_SAME, "wddx"); echo "$color, $size, $shape, $wddx_size\n"; ?>Пример выведет:
blue, large, sphere, mediumЗдесь переменная $size не была переписана, т.к. мы указали параметр EXTR_PREFIX_SAME. Если указать EXTR_SKIP, тогда переменная $wddx_size даже не была бы создана. Если указать EXTR_OVERWRITE, то переменная $size имела бы значение ""medium". Если EXTR_PREFIX_ALL - то в результате были бы созданы переменные $wddx_color, $wddx_size, и $wddx_shape.
Лучше всего использовать ассоциативные массивы. Массивы с цифровыми ключами не могут быть использованы в этой функции, если установлены флаги EXTR_PREFIX_ALL или EXTR_PREFIX_INVALID.
Функция поддерживается PHP 3 >= 3.0.7, PHP 4, PHP 5