Переменные и массивы

Переменные и массивы

list

Заносит элементы массива в переменные.

Синтаксис:

void list ( mixed ...)

Наподобие array(), функция list() не совсем функция, а языковая конструкция. Она используется для формирования списка переменных.

Замечание: list() работает только с цифровыми индексами массива и принимает ключи элементов начиная с 0.

Пример использования функции 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";

}

?&gt;

</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

compact

Упаковывает в массив переменные из текущего контекста.

Синтаксис:

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

extract

Импорт элементов массива в переменные.

Синтаксис:

int extract (array var_array [, int extract_type [, string prefix]])

Функция extract() используется для импортирования значений массива в строку. Эта функция берет ассоциативный массив var_array, использую ключ элемента как имя переменной, а значение элемента как значение полученной переменной. Для создания переменных из пары ключ = значение можно также использовать необязательные параметры extract_type и prefix.

Замечание: начиная с PHP версии 4.0.5 эта функция возвращала количество извлеченных переменных.

Функция extract() проверяет, действительно ли каждый ключ массива может быть названием переменной. Она также проверяет на наличие одинаковых названий получаемых переменных. В случае, если обнаруживаются недействительные или числовые ключи, поведение функции предопределяет параметр extract_type, который может принимать следующие значения:

Пример использования функции extract():

<?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_sizen";

?>

Пример выведет:

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Функции и переменные. Локальные переменные

Из книги автора

Функции и переменные. Локальные переменные Объявленные ранее функции создают внутри своего тела собственные переменные. Это так называемые локальные переменные. Такие переменные доступны только внутри тела функции, в котором они объявлены. При завершении выполнения


Массивы

Из книги автора

Массивы Массив — это пронумерованный набор переменных (элементов), фактически хранящийся в одной переменной. Доступ к отдельному элементу массива выполняется по его порядковому номеру, называемому индексом. А общее число элементов массива называется его


Функции и переменные. Локальные переменные

Из книги автора

Функции и переменные. Локальные переменные Объявленные ранее функции создают внутри своего тела собственные переменные. Это так называемые локальные переменные. Такие переменные доступны только внутри тела функции, в котором они объявлены. При завершении выполнения


Массивы

Из книги автора

Массивы Массив — это пронумерованный набор переменных (элементов), фактически хранящийся в одной переменной. Доступ к отдельному элементу массива выполняется по его порядковому номеру, называемому индексом. А общее число элементов массива называется его


Массивы

Из книги автора

Массивы СУБД InterBase была одной из первых, в которой появились массивы. Поддержка массивов в базе данных является расширением традиционной реляционной модели. Наличие массивов позволяет упростить работу со множествами данных одного типа.Массив - это совокупность значений


Массивы

Из книги автора

Массивы По умолчанию указатели, передаваемые через параметры, полагаются указателями на единичные экземпляры, а не на массивы. Для передачи массива в качестве параметра можно использовать синтаксис С для массивов и/или специальные атрибуты IDL для представления


4. Массивы и индексированные переменные

Из книги автора

4. Массивы и индексированные переменные Пример описания одномерных массивов:int x [15], y [30];Пример описания двумерного массива:float z [10] [20];Нумерация элементов массива начинается с нуля.Пример 2.9: Программа генерирует таблицу умножения и оформляет вывод результатов


R.8.2.4 Массивы

Из книги автора

R.8.2.4 Массивы В описании T D, в котором D имеет видD1 [ выражение-константа opt ]описывается идентификатор типа "… массив T". Если выражение-константа присутствует (§R.5.19), то оно должно иметь целочисленный тип и значение, большее 0. Это выражение задает число элементов массива.


Массивы

Из книги автора

Массивы Для создания множества одинаковых объектов в 3ds Max есть специальная команда Array (Массив). Преимущество массивов заключается в том, что можно быстро создать большое количество объектов, сразу же указав, на сколько они будут сдвинуты, на какой угол повернуты и как


8.1. Массивы

Из книги автора

8.1. Массивы В Ruby массивы индексируются целыми числами; индексация начинается с нуля, как в языке С. На этом, впрочем, сходство и заканчивается.Массивы в Ruby динамические. Можно (хотя это и не обязательно) задать размер массива при создании. Но после создания он может расти без


Массивы

Из книги автора

Массивы Массив — это упорядоченная именованная совокупность однотипных значений, к которым можно обращаться по их порядковому номеру (индексу). Для описания массивов в языке Object Pascal используют следующие формы:• array [1..N1] of type — одномерный массив фиксированного размера


МАССИВЫ 

Из книги автора

МАССИВЫ      Вы уже знаете, что массив представляет собой группу элементов одного типа. Когда нам требуется для работы массив, мы сообщаем об этом компилятору при помощи операторов описания. Для создания массива компилятору необходимо знать тип данных и требуемый класс


Массивы

Из книги автора

Массивы Массивы представляют собой простейшую реализацию набора элементов, для которой можно использовать алгоритм последовательного поиска. Возможны два случая: первый - элементы массива расположены в произвольном порядке и второй - элементы отсортированы. Сначала


Массивы

Из книги автора

Массивы Динамические массивы Очень простой пример…Const MaxBooleans = (High(Cardinal) – $F) div sizeof(boolean);Type TBoolArray = array[1..MaxBooleans] of boolean; PBoolArray = ^TBoolArray;Var B: PBoolArray; N: integer;BEGIN N:= 63579; {= получение памяти под динамический массив.. =} GetMem(B, N*sizeof(boolean)); {= работа с массивом… =} B^[3477]:= FALSE; {= возвращение