Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Общие сведения о применении массивов в РНР




Как и в других языках программирования, массивы в РНР используются для группировки данных под общим именем. Однако понятие массива используется в несколько ином смысле.

Считается, что каждый элемент массива имеет две характеристики:

а) значение — это хранимая элементом информация,

б) ключ — служебная информация, которая уникально идентифицирует значение элемента.

Ключи могут быть целыми числами или строками. Массивы с целочисленными ключами называются скалярными массивами.

Массивы, у которых в роли ключей используются (литералы) символьные строки, называются ассоциативными.

В РНР различие между скалярными и ассоциативными массивами внешнее, так как внутреннее представление обоих типов массивов — списочное.

Каждый элемент массива — это переменная, а в РНР переменные не типизированы. Поэтому массивы РНР могут одновременно хранить числа, строки или даже другие массивы, т.е. значения разных типов.

Имена массивов, как и переменных, должны начинаться со знака доллара ($).

Библиотека РНР имеет две функции для получения использованных в массиве ключей и занесенных в него значений: и

array_keys( имя_массива ) и array_values( имя_массива ).

Обе функции возвращают информацию в виде проиндексированных числами массивов.

Количество элементов в массиве можно вычислить с помощью функции

count( имя_массива )

или аналогичной ей sizeof().

Операторы для вывода информации о структуре и

Значениях объектов данных

В РНР имеются функции, позволяющих выводить информацию о переменных и других элементах данных, включая структурированные, такие как массивы и объекты. Эта информация бывает очень полезна при отладке программы.

а) Функция print_r.

Отображает информацию о переменной. Если функции передается переменная, содержащая строку или число, то выводится значение переменной.

Для массивов выводятся значения индексов и значения элементов.

Для объектов выводятся имена и значения всех свойств.

Строка в конце вывода не переводится.

б) Функция var_dump.

Выдает структурированную информацию о переменной (выражении), включающую ее тип и значение.

Если элементы массива имеют сложное устройство, то функция обрабатывает их рекурсивно.

Для объектов распечатываются только открытые (общедоступные) свойства.

Строка в конце вывода не переводится.

Управлением внутренним указателем

Для управления внутренним указателем массива предназначены следующие функции:

reset — установка указателя в начальную позицию,

end — установка указателя в последнюю позицию,

prev — установка указателя в предыдущую позицию,

next — установка указателя в следующую позицию,

current — получить номер текущей позиции.

Примеры

$arr = array('первый', 'второй', 'третий', 'четвертый');

$elem = current ($arr);

echo $elem; //' первый '

next ($arr);

$elem = next ($arr);

echo $elem; //' третий '

$elem = current ($arr);

echo $elem; //' третий '

$elem = each ($arr);

print_r($elem); //Array([1]=> третий [value]=>третий [0]=>2 [key]=>2)

$elem = current ($arr);

echo $elem; //после вызова итератора — ' четвертый '

$elem = prev ($arr);

echo $elem; // ' третий '

$elem = end ($arr);

echo $elem; // ' четвертый '

$elem = reset ($arr);

echo $elem; // ' первый '

 

Вопросы для самоконтроля

1. Какие существуют варианты создания массивов с помощью конструктора?

2. В чем состоит назначение оператора foreach? Чем различаются варианты синтаксиса оператора foreach?

3. Можно ли создавать ассоциативные массивы, не используя конструктор?

4. Можно ли создавать массивы с числовыми индексами, не используя конструктор?

5. Какими способами создаются многомерные массивы?

6. Для чего нужен внутренний указатель массива и как им можно управлять?

7. Для чего используется итератор each и в чем особенность возвращаемого им значения?

8. Влияет ли вызов итератора each на положение внутреннего указателя массива?

9. Для чего предназначена конструкция list и каковы особенности её выполнения? Использует ли list в своей работе внутренний указатель массива?

10. Какие библиотечные функции позволяют получить ключи и значения элементов массива?

11. Какие операторы можно применять для вывода информации о структуре объектов данных?

 





Поделиться с друзьями:


Дата добавления: 2017-04-15; Мы поможем в написании ваших работ!; просмотров: 514 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Либо вы управляете вашим днем, либо день управляет вами. © Джим Рон
==> читать все изречения...

2302 - | 2033 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.