функция list в php
Функция list в php
(PHP 4, PHP 5, PHP 7, PHP 8)
list — Присваивает переменным из списка значения подобно массиву
Описание
До PHP 7.1.0, list() работала только с индексированными массивами и принимала числовые индексы начиная с 0.
Список параметров
Возвращаемые значения
Возвращает присвоенный массив.
Список изменений
Примеры
Пример #1 Примеры использования list()
Пример #2 Пример использования list()
Пример #3 Использование list() с индексами массивов
Пример #4 list() и порядок указания индексов
Производит такой вывод (обратите внимание, на порядок, в котором элементы были перечислены в синтаксисе list() и на порядок вывода):
Пример #5 list() с ключами
Начиная с PHP 7.1.0, для list() можно задавать конкретные ключи, которые могут быть произвольными выражениями. Допустимо смешивать строковые и числовые ключи. Однако элементы с ключами и без ключей не могут быть использоваться одновременно.
Результат выполнения данного примера:
Смотрите также
User Contributed Notes 24 notes
Since PHP 7.1, keys can be specified
In PHP 7.1 we can do the following:
The example showing that:
One thing to note here is that if you define the array earlier, e.g.:
$a = [0, 0, 0];
the indexes will be kept in the correct order:
Thought that it was worth mentioning.
As noted, list() will give an error if the input array is too short. This can be avoided by array_merge()’ing in some default values. For example:
An alternate approach would be to use array_pad on the array to ensure its length (if all the defaults you need to add are the same).
list() can be used with foreach
The list construct seems to look for a sequential list of indexes rather taking elements in sequence. What that obscure statement means is that if you unset an element, list will not simply jump to the next element and assign that to the variable but will treat the missing element as a null or empty variable:
Since 7.1.0, you can use an array directly without list():
For PHP 7.1 on, the documentation states that integer and string keys can be mixed, but that elements with and without keys cannot. Here is an example, using data from getimagesize() with mixed keys:
As noted elsewhere, the list() operator can be written in array format:
I note this as contrasting with the fact that PHP triggers an E_NOTICE about «Undefined offset» «if there aren’t enough array elements to fill the list()», as attow documented for https://php.net/control-structures.foreach#control-structures.foreach.list and here only noted in https://php.net/function.list#122951 by Mardaneus.
Easy way to get actual date and time values in variables.
From PHP Version 7.1 you can specify keys in list(), or its new shorthand [] syntax. This enables destructuring of arrays with non-integer or non-sequential keys.
Since PHP 7.1 the [] may now be used as an alternative to the existing list() syntax:
This is something I haven’t seen in documentation.
Since PHP 7.1, you can use short-hand list unpacking using square brackets, just like short-hand array declaration:
Функции встроенные в PHP — Функции List, Isset, Unset, Date, Count, Exit и Trim
В этой статье мы снова продолжаем изучение основ PHP и рассмотрим функции встроенные в PHP. В рамках данной статьи мы будем рассматривать такие полезные функции, как List, Isset, Unset, Exit и многие другие. Все это будет рассмотрено на примерах для лучшего усвоения материала. Сразу хочу заметить, что данные PHP функции повсеместно используются и являются базой данного языка программирования. Исходя из этого их доскональное знание, как и других основ, обязательно для всех, кто всерьез намерен овладеть этим языком программирования.
В предыдущей статье «Функции PHP. Синтаксис и примеры использования функций PHP» мы уже рассматривали, как самостоятельно создавать функции и как их использовать. В этой статье мы продолжим наше обучение и рассмотрим функции, которые установлены в PHP по умолчанию.
Функции Exit, Count и Trim
Функция exit() – позволяет остановить дальнейшее выполнение скрипта при определенных условиях. Для этого нам достаточно в нужном месте прописать функцию exit(). В качестве параметра ей можно передавать переменные или, например, какой-то текст. Также, если параметром является текст, не забываем заключить его в кавычки.
После того как обработчик PHP дойдет до строки с функцией Exit, он остановит дальнейшее выполнение программы и выведет сообщение, которое указано в качестве параметра функции. Данную функцию можно применять, например, для завершения работы скрипта, если не выполняется какое-то условие.
Функция count() – позволяет подсчитать количество элементов массива. Для этого достаточно прописать функцию и в качестве параметра указать имя массива.
Сразу хочу заметить, что данная функция PHP, как и многие другие, возвращает результат, а не выводит его. То есть функция выполняется и возвращает результат, который в дальнейшем можно использовать в других целях, например, вывести его на экран при помощи оператор вывода echo.
Также стоит добавить, что для того чтобы созданная нами функция также возвращала результат, а не выводили его, как это было в примерах из предыдущей статьи, можно использовать специальную конструкцию return, которая возвращает результат выполнения функции. Для примера возьмем функцию, которая выводила на экран ссылку и переделаем ее так, чтобы она просто возвращала результат, а не выводила его на экран.
Функция trim() – позволяет убрать пробелы в начале и конце текста. Она может быть полезна, например, при обработке полей паролей на сайтах. Для удаления пробелов достаточно просто прописать функцию trim(), а в качестве параметра передать переменную, в которой находится текст для обработки.
Функции List, Isset и Unset
Функция list() – позволяет присвоить значения переменным за одну операцию. Зачастую применяется для того чтобы присвоить переменным значения элементов массива. Для наглядности давайте рассмотрим следующий пример.
Функция isset() – позволяет проверить на существование переменную. Если переменная существует, то функция вернет результат, который равен единице. Если же переменная не существует, то функция ничего не вернет.
Для того, чтобы проверить существует ли переменная достаточно вызвать функцию isset() и в качестве параметра передать переменную, которую нужно проверить.
Чаще всего при создании сайтов функция isset() используется вместе с конструкцией if – else. То есть проверяется, существует ли переменная и если результат положительный, то продолжается выполнение скрипта, если же нет, то совершается предусмотренное действие, например, вывод сообщения об ошибке.
Функция unset() – позволяет удалять переменные. Для этого достаточно вызвать функцию unset() и передать ей в качестве параметра переменную, которую нужно уничтожить.
Функция даты и времени в PHP
Функция date() – предназначена для получения даты и времени. В зависимости от того, какие параметры будут переданы функции date(), она будет возвращать соответствующий результат. Например, для того чтобы получить дату в виде «11.11.2011» нужно передать функции следующие параметры.
Аналогичным образом, заменяя параметры, можно добиться такого отображения даты, как вам необходимо. Специально для читателей блога dmitriydenisov.com я подготовил таблицу с параметрами, которые позволят вам сформировать дату именно в таком виде, в каком вам необходимо.
a | «am» или «pm» |
A | «AM» или «PM» |
B | время Swatch Internet |
d | день (число) месяца, 2 цифры с ведущим нулём, если необходимо; т. е. от «01» до «31» |
D | день недели, буквенный, 3 буквы; например, «Fri» |
F | месяц, буквенный, long; например, «January» |
g | час, 12-часовой формат без ведущих нулей; т.е. от «1» до «12» |
G | час, 24-часовой формат без ведущих нулей; т.е. от «0» до «23» |
h | час, 12-часовой формат; т.е. от «01» до «12» |
H | час, 24-часовой формат; т.е. от «00» до «23» |
i | минуты; т.е. от «00» до «59» |
I | (заглавная i) — «1», если Daylight Savings Time, «0» — в противном случае |
j | день (число) месяца без ведущих нулей; т.е. от «1» до «31» |
l | (‘L’ в нижнем регистре) — день недели, буквенный, long; например, «Friday» |
L | boolean, указывающее, високосный ли год; т.е. «0» или «1» |
m | месяц; т.е. от «01» до «12» |
M | месяц, буквенный, 3 буквы; например, «Jan» |
n | месяц без ведущих нулей; т.е. от «1» до «12» |
O | разница с временем по Гринвичу, в часах; например, «+0200» |
r | RFC 822 формат даты; например, «Thu, 21 Dec 2000 16:01:07 +0200» (введён в PHP 4.0.4) |
s | секунды; т.е. от «00» до «59» |
S | простой английский суффикс для дня (числа) месяца, 2 символа; т.е. «st», «nd», «rd» или «th» |
t | количество дней в данном месяце; т.е. от «28» до «31» |
T | установка Timezone/Часовой пояс на данной машине; например, «EST» или «MDT» |
U | секунды эпохи Unix Epoch (начиная с January 1 1970 00:00:00 GMT) |
w | день недели, числовой, т.е. от «0» (Sunday) до «6» (Saturday) |
W | ISO-8601 номер недели в году, недели начинаются с понедельника/Monday (введено в PHP 4.1.0) |
Y | год, 4 цифры; например, «2011» |
y | год, 2 цифры; например, «99» |
z | день года; т.е. от «0» до «365» |
Z | смещение часового пояса, в секундах (т.е. от «-43200» до «43200»). Смещение часовых поясов к западу от UTC всегда отрицательное, а для поясов в востоку от UTC — всегда положительное. |
На этом данная статья подошла к концу. Если вы не хотите пропустить последних обновлений сайта, рекомендую подписаться на новостную рассылку любым удобным для вас способом в пункте «Подписка» или воспользоваться формой ниже.
На этом все. Удачи вам и успехов в освоении PHP.
Функция list в php
Обратиться к элементу массива можно по имени массива и индексу элемента внутри массива:
Зная количество элементов массива, можно вывести все элементы массива с помощью цикла:
если неизвестно количество элементов массива, можно использовать функцию count(). Эта стандартная функция определяет размер массива, то есть количество элементов в нем. Соответственно:
Массивы, индексами которых являются числа, начинающиеся с нуля без пропусков, называются списками. С технической точки зрения разницы между массивами и списками нет.
Массивы, индексами которых являются строки, называются ассоциативными. Индексы ассоциативных массивов называются ключами. Например:
$people[» Иванов «] = » Иван «;
$people[» Сидоров «] = » Николай «;
$people[» Петров «] = » Петр «;
Доступ к элементам ассоциативных массивов осуществляется так же, как и к элементам обыкновенных массивов, и называется доступом по ключу:
Пример: имеем массив, состоящий из трех элементов:
Инструкция array() используется специально для создания массивов. При этом она позволяет создавать пустые массивы.
Методы использования инструкции array() :
$A = array (); // создает пустой массив
$A = array (» Иванов «=>» Иван «, » Петров «=>» Петр «); // создает ассоциативный массив с двумя элементами
$A = array (» Иванов «,» Петров «); // создает список с двумя элементами. Индексы нумеруются с нуля.
Инструкцию array() удобно использовать при создании многомерных массивов.
$A[«Ivanov»] = array(«name»=>» Иванов И. «, «sex»=>» М «, «email»=>»ivanov@mail.ru»);
$A[«Petrov»] = array(«name»=>» Петров И. «, «sex»=>» М «, «email»=>»petrov@mail.ru»);
$A[«Sidorova»] = array(«name»=>» Сидорова Н. «, «sex»=>»F», «email»=>»sidorova@mail.ru»);
Добраться до элементов массива можно так:
Для удаления массива, как и любой переменной, используется функция UnSet():
Пример: имеется два массива.
$A = array («1″=>» первый «,»2″=>» второй «);
$B = array(«3″=>» третий «,»4″=>» четвертый «);
«1»=>» первый «,»2″=>» второй «,»3″=>» третий «,»4″=>» четвертый » // именно в таком порядке
Особенно внимательными нужно быть при слиянии списков. Пример:
В результате: 10,11,12 т. к. при слиянии массивов, в которых содержатся элементы с одинаковыми индексами (ключами), в результирующем массиве останется элемент первого массива, причем на том же самом месте.
Функция array_merge() предназначена для слияния массивов. Она устраняет все недостатки оператора +.
Функция array_merge() соединяет массивы переданные ей в качестве аргументов в один большой массив. Если в соединяемых массивах встречаются одинаковые ключи (ключ= > значение), то в результирующий массив помещается пара ключ= > значение из массива, который стоит правее в списке аргументов функции array-merge().
Таким образом, функцию array_merge() очень удобно использовать для слияния списков.
Принцип косвенного перебора заключается в том, что сначала вычисляется очередной индекс (ключ), а затем по этому индексу косвенно находится значение элемента массива. Например:
Пояснения: цикл for перебрал индексы ( целые числа), последовательно увеличивая их на 1, и по индексам получил элементы массива.
Для ассоциативного массива, индексом которого является строка:
$people[» Иванов «] = » Иван «;
$people[» Сидоров «] = » Николай «;
$people[» Петров «] = » Петр «;
Перебор такого массива поможет следующий цикл:
for (Reset($people); ($k = key($people)); Next ($people));
Принцип прямого перебора заключается в том, чтобы при каждой итерации цикла одновременно получать и ключ, и значение текущего элемента массива. для прямого перебора используется цикл foreach :
Основные функции для сортировки массивов:
Функция asort() выполняет сортировку массива по значениям элементов. При этом она располагает элементы массива таким образом, что их значения идут в алфавитном порядке (если это строки) или в возрастающем порядке (если это числа).
Функция arsort() выполняет сортировку в обратном порядке.
Пример: имеется массив
$FIO = array(«Sidorov»=>»Nikolay», «Ivanov»=>»Alexandr», «Petrov»=>»Petr»);
После выполнения функции asort($FIO) массив будет преобразован следующим образом:
array(«Ivanov»=>»Alexandr», «Sidorov»=>»Nikolay», «Petrov»=>»Petr»);
array(«Ivanov»=>»Alexandr», «Petrov»=>»Petr», «Sidorov»=>»Nikolay»);
Для сортировки ключей в обратном порядке используется функция krsort().
Функции asort(), arsort(), ksort() и krsort() не разрывают пары ключ= > значение. Это очень важно. Например: имеем небольшой список:
$people = array(«Ivanov»=>»555-6677», «Sidorov»=>»345-4567», «Petrov»=>»777-5653»);
после сортировки массива по ключам, список выглядит так:
$people = array(«Ivanov»=>»555-6677», «Petrov»=>»777-5653», «Sidorov»=>»345-4567»);
Пары ключ= > значение не разорваны. Если необходимо отсортировать список, то удобнее использовать функцию sort(). Данная функция разрывает пары ключ= > значение, поэтому она используется только для списков. Например: имеется список
$List = array(«Name», «Address», «Email»);
Если вывести список в виде ключ= > значение, получим следующий результат:
После сортировки sort() имеем следующий список:
Для переворачивания массива используется функция array_reverce(). Она возвращает массив в обратном порядке относительно исходного массива. Например, чтобы отсортировать массив в обратном порядке, можно использовать функцию arsort(), а можно упорядочить массив в прямом порядке функцией asort() и перевернуть его функцией array_reverce().
Перед вызовом этой функции необходимо инициализировать генератор случайных чисел, иначе при каждом новом вызове функции shiffle() результат перемешивания будет один и тот же. Для инициализации генератора случайных чисел используется функция mt_srand():
// Сравниваем по алфавиту
elseif ($e1_1>$e1_2) return 1;
Вызовем функцию uasort():
Для получения части массива используется функция array_slice(). Ей нужно передать три параметра:
Данная функция возвращает часть указанного массива, начиная с указанного смещения от начала массива. Выборка элементов осуществляется подряд. Длина результирующего массива задается параметром Длина, который является необязательным. Если он не указан, то выборка элементов проходит до конца исходного массива.
$A = array (xox, ror, tot, pop, mom); // задаем исходный массив
$A = array («Audi», «Mersedes», «Toyota», «Honda», «Renault»);
array_splice ($A, 1, count($A), «BMW»);
Если необходимо добавить один элемент в массив (как в приведенном примере), то удобнее использовать оператор [ ]. Использование оператора array_push() оправдывает себя тогда, когда нужно добавить в конец массива несколько новых элементов. Например:
Вместо этого можно записать:
array_push ($A, 5,7,9,10,15);
$A = array (xox, ror, tot, pop, mom);
Функции array_unshift() и array_shift() похожи на функции array_push() и array_pop(), но только работают не с концом списка, а с его началом.
Функция array_unshift() добавляет элементы в начало списка, а функция array_shift() возвращает значение первого элемента списка и удаляет его из списка:
Функция array_unique() предназначена для извлечения уникальных значений массива вместе с ключами этих значений. Пример:
$Arr = array («a=>»AAA», «b»=>»BBB», «c», «d», «e»=»BBB», «d»);
$Unique_Arr = array_unque ($Arr); //$Unique_Arr = array («a»=>»AAA», «b»=»BBB», «c»,»d»);
Функция compact(«Name», «Email») упакует переменные в один массив:
$A = compact («Name», «Email»);
Значение EXTR_WRITE используется по умолчанию и может не указываться, т.е. достаточно указать extract($A) и все переменные будут перезаписаны.
Иногда нужно создать диапазон чисел, например, для нумерации записей в выбранной таблице. Пример создания диапазона чисел:
Функция list в php
Пока я творю, я живу!
Блог посвящен: HTML, CSS, PHP, WordPress, Bootstrap
Полезные функции php List, Isset, Unset, Empty, Date, Count и Exit. Основы PHP с нуля. Урок №18
Всем привет!
Продолжаем изучать основы PHP с нуля!
В этом уроке я расскажу вам про некоторые полезные функции в php, такие как, List(), Isset(), empty(), Unset(), Date(), Count() и Exit(). Что это за функции и какую роль они играют, вы узнаете, если дальше продолжите читать этот урок.
Пойдем по порядку.
Функция list
Функция list () – позволяет присвоить значения переменным за одну операцию.
Пример (стандартный пример php-массива):
Пример (используя функцию list ()):
Обратите внимание на строки №5 и №6.
Функция Isset
Функция Isset () – эта функция поможет проверить, существует ли переменная в коде.
Функция Isset() часто используется для работы с формами, когда нужно проверить, существует ли переменная.
Функция Isset() работает вместе с конструкцией if else:
Функция empty
Функция empty() – проверка, пустая ли переменная.
Функции Unset
Функции Unset() – эта функция поможет удалить переменную.
Перед удалением: Мой блог StepkinBLOG.ru
После удаления:
Функция Date
Функция Date() – эта функция поможет вывести дату или время на сайте, которые берутся из сервера.
Основные параметры для date()
Попробуем вывести дату, месяц и год в таком формате « 24.01.2018 »
В таком формате 24/01/2018
Если еще хотите время добавить в таком формате « Дата:28/12/2017 Вр:14:38 », то вот так:
Вам на заметку:
Если вы хотите, чтобы на сайте автоматически менялась дата копирайта, то это можно сделать так:
Функции Count
Функции Count() – эта функция посчитает количество элементов массива.
Пример:
Создадим массив с 4 элементами:
Строка №7- выведет количество элементов массива:
Функция Exit
Функция Exit() – эта функция позволяет остановить дальнейшее выполнение скрипта.
Чтобы остановить дальнейшую работу скрипта, просто в коде прописываете функцию:
После этой функции прекращается чтение кода.
Можно в функцию exit() добавить текст:
Теперь пример:
Создам простой код без использования функции exit() :
Теперь я остановлю чтение скрипта после предложения «Всем привет. » (Строка № 3):
Как вы заметили, что код после функции exit() перестал читаться, это относиться и к тегам HTML, они тоже перестанут читаться.
Это все!
Жду вас на следующих уроках.
Функция list в php
Подобным образом выводится список ссылок на отдельные страницы раздела сайта, хранящиеся в базе данных, фирмы в каталоге, подписчики рассылки в интерфейсе администрирования, статистика ресурса и многое другое.
Каждый раз, набирая подобный код в PHP-редакторе, видишь, что снова и снова проделываешь одну и ту же работу с минимальными вариациями. Различия только в коде SQL-запроса, типе и количестве выводимых полей и в HTML-тэгах, т.е. в дизайне. А если делаешь одну работу два раза, то это повод не только заскучать, но и задуматься о том, как ее себе облегчить. Да и попытки немного изменить дизайн сайта часто требуют модификации именно этого участка кода, а значит и его последующей отладки.
На протяжении нескольких лет работы с PHP у меня выработался определенный стандарт написания кода для вывода списков, и в результате захотелось обобщить этот опыт и сделать нечто стандартное, подходящее для любой ситуации, связанной с выводом результатов SQL-запроса в виде списка средствами PHP.
Вышеуказанную структуру я называю шаблоном списка. Остается написать код некоего класса, который, имея на входе SQL-запрос, порождает объект, содержащий результат выполнения этого запроса. В классе также требуется метод, который на основании разработанного выше шаблона выдаст нам требуемый HTML-код.
Можно, конечно, обойтись и функцией, которая выдаст требуемое, получив в качестве параметров SQL-запрос и код шаблона. Но на мой взгляд с классами и ООП в программировании работать куда вкуснее. Вдобавок я не собираюсь останавливаться на такой простой модели списка, а дальнейшие разработки кода с классами поддерживаются куда проще. А когда наши провайдеры сменят движки PHP с четвертой версии на пятую, классы войдут в PHP в том же объеме, что и в C++.
Недолго думая, класс был назван ListItems; незнакомых с английским отсылаю на multitran.ru. Пишем его код:
Конструктор класса принимает в качестве параметра код SQL-запроса. К моменту создания экземпляра класса у вас уже должна быть вызвана функция mysql_connect. После этого в свойстве items объекта мы получим результат выполнения запроса в виде нумерованного массива, каждый элемент которого является стандартным PHP-объектом, имена полей которого соответствуют именам полей запроса, а значения, естественно, соответствуют выбранным из базы данных значениям полей.
Потом создадим массив, в котором каждый элемент шаблона индексируется принятым именем. Для написания кода элементов шаблона я пользуюсь одной достаточно распространенной идеей, вымученной PHP-программистами (да и не только ими) за многолетние попытки отделить дизайн от кода (эта статья также относится к ним). В настоящее время сложился определенный стандарт написания шаблонов для PHP-программ, использующий так называемые макрокоды, или макросы.
Чаще всего применяется конструкция, использующая угловые скобки с каким-либо текстовым или цифровым значением внутри для указания того места в шаблоне, куда надо вставлять нужную информацию. Для той же цели применяются теги комментариев HTML с текстом или числом, которые идентифицируются PHP-движком и заменяются требуемой информацией.
На мой взгляд, главный недостаток такой технологии заключается в том, что если PHP по какой-либо причине не обработал этот элемент кода, то в браузере вы не увидите ничего, что указало бы на эту ошибку, поскольку комментарии HTML невидимы по определению, а конструкции с угловыми скобками выглядят для браузера как неизвестные ему HTML-тэги, которые также не отображаются. А если совершенная ошибка невидима, то она будет повторяться и никогда не отладится. К тому же шаблоны бывают достаточно сложны и объемны по содержанию и разрабатывать их приходится в каком-либо WISIWIG-редакторе. Попробуйте редактировать невидимые тэги и комментарии в нем, и сразу убедитесь, насколько это неудобно. Применение квадратных скобок в виде [name] не очень удачно, так как даже в обычных текстах они достаточно распространены.
В общем, для вставки в шаблоны варьируемой информации была придумана следующая конструкция: , где NAME – это идентификатор того значения, которым мы хотим заменить этот макрос. Такой макрос виден в выводе браузера, в любом WISIWIG-редакторе, более того, многие популярные HTML- и PHP-редакторы исходного кода можно настроить на подсветку этой конструкции цветом, отличным от остального кода, поскольку в стандарте HTML и PHP такая последовательность символов не используется. К тому же этот макрос не требует для своего написания специальных символов HTML.
Идентификатор NAME должен подчиняться еще одному правилу. Как вы уже заметили, в коде класса ListItems, SQL-запрос преобразуется в массив объектов, у которых имена полей соответствуют именам полей запроса, а значения – значениям. Распространяя это дальше, примем, что идентификатор NAME должен соответствовать имени того поля, значение которого заменит макрос без учета регистра символов. То есть, если в вашей базе данных есть таблица, в которой в поле name содержатся названия стран мира, а в поле population – численность их населения, то для того чтобы вывести список стран в виде
НАЗВАНИЕ СТРАНЫ – НАСЕЛЕНИЕ
элемент item должен выглядеть так:
С учетом вышесказанного, код, задающий шаблон, будет выглядеть так:
Теперь приведу код метода объекта ListItems, который вставляет любой объект $o в каждый элемент шаблона $t, закодированного по определённым выше правилам.
Изменив регулярное выражение в третьей строке кода, вы можете изменить вид макроса в соответствии с принятым на вашем проекте. Например,
позволит использовать макрос вида [name], а
– такой же макрос с фигурными скобками и любым числом пробельных символов между name и скобками. Я использую в своих проектах макросы с возможностью добавления пробельных символов перед и просле name, и эта строка выглядит так:
И последняя функция класса ListItems выводит массив объектов items в шаблон из шести элементов в соответствии со всем вышесказанным.
Первые шесть строк кода нужны, чтобы предотвратить вывод сообщений об ошибках в случае несоответствия шаблона $arg введенным нами соглашениям. Далее по циклу перебираются все элементы массива items и вставляются в элемент item шаблона с добавлением разделителя delimiter. По окончании цикла, в случае, если количество элементов в items больше нуля, то listitems заменяется empty, если нет, то к нему добавляются begin и end с отбрасыванием последнего delimiter. Далее экземпляр нашего класса вставляется в list и еще раз в полученный результат но уже без поля listitems. Это необходимо для того, чтобы дать возможность разместить поле count в begin, end, item или delimiter, что иногда бывает необходимо.
В общем-то, уже почти все сказано. Но как полагается в любой статье по программированию, приведу один готовый к тестированию пример, чтобы мой читатель, который, как и всякий программист, достаточно ленив, мог оценить сей труд на своем сервере.
Скачайте файл listitems.rar и распакуйте его в один из каталогов вашего сервера. Код класса ListItems находится в файле cls_lstitems.inc, тестовый пример – в файле test.php, SQL-код для создания тестовой таблицы в вашей базе данных – в файле test.sql. Во второй-пятой строках файла test.php укажитете ваши данные для подключения к MySQL, создайте тестовую таблицу из файла test.sql и запускайте скрипт test.php. Результатом его работы будет список стран мира с их населением по последним данным из CIA World FactBook.
Раскомментируйте 20-ю строку скрипта. Теперь элемент item отличается от первоначального тэгами b и, соответственно, население страны выделяется жирным шрифтом. Раскомментируйте 22-ю и 23-ю строки, и список становится нумерованным. Если в 53-ей строке заменить параметр функции $template на $template1, то вы получите список в табличном виде. Шаблон $template2 позволяет вывести только названия всех стран мира через запятую с пробелом и завершающей точкой. Если 51-ую строку скрипта заменить на
то можно посмотреть на то, как класс ListItems обрабатывает пустые SQL-запросы.
Конечно, код класса ListItems намного сложнее приведенного в начале статьи цикла. Но, вводя такой класс, мы сделали одну очень большую вещь. В этом примере программный код (класс) полностью отделен от дизайна (шаблон) и содержащейся в выводимом списке информации (SQL-запрос). Добавьте к этому возможность хранить любое количество шаблонов в базе данных за счет их однотипной структуры, выбирая их по имени или номеру (идентификатору) и редактируя через какой-нибудь интерфейс администрирования без необходимости правки программного кода. Теперь не надо запускать дизайнеров в программный код, достаточно лишь поправить шаблон. Нет необходимости править код и в случае добавления новых данных: если вы хотите добавить в ваш список площадь территории каждой страны, то нужно лишь добавить в таблицу MySQL новое поле square, а в поле item шаблона — макрос . Все это очень сильно облегчает жизнь разработчику движка сайта и CMS (Content Management System).