LXF154:PHP
Olkol (обсуждение | вклад) (Новая страница: «Категория: Учебники =PHP: Строим онлайн-календарь= ''PHP Язык программирования, котор…») |
Olkol (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 1 участника) | |||
Строка 13: | Строка 13: | ||
Итак, что же такое массив? Чтобы помочь дать ему определение, вернемся к предыдущему руководству, когда мы хранили простое текстовое сообщение в переменной ($display_text). Проблема с переменными состоит в том, что в каждый момент они могут содержать только один элемент данных. Не правда ли, было бы здорово, если бы мы могли хранить несколько элементов данных в одной переменной? Здесь-то и настает черед массивов. | Итак, что же такое массив? Чтобы помочь дать ему определение, вернемся к предыдущему руководству, когда мы хранили простое текстовое сообщение в переменной ($display_text). Проблема с переменными состоит в том, что в каждый момент они могут содержать только один элемент данных. Не правда ли, было бы здорово, если бы мы могли хранить несколько элементов данных в одной переменной? Здесь-то и настает черед массивов. | ||
− | Введение в массивы | + | ==Введение в массивы== |
Лучший способ представить массив – считать его особой переменной, которая хранит другие переменные. Массив позволяет хранить внутри столько элементов, сколько вам надо (единственное ограничение на размер массива накладывает выделенный PHP объем памяти). Можно пройтись по всем элементам массива (эта операция известна как траверсирование), и в PHP есть более 70 функций, позволяющих выполнять с массивами определенные действия, такие как поиск внутри массива, определение количества элементов, удаление дубликатов и даже изменение порядка элементов на обратный. Создать массив тоже проще пареной репы: | Лучший способ представить массив – считать его особой переменной, которая хранит другие переменные. Массив позволяет хранить внутри столько элементов, сколько вам надо (единственное ограничение на размер массива накладывает выделенный PHP объем памяти). Можно пройтись по всем элементам массива (эта операция известна как траверсирование), и в PHP есть более 70 функций, позволяющих выполнять с массивами определенные действия, такие как поиск внутри массива, определение количества элементов, удаление дубликатов и даже изменение порядка элементов на обратный. Создать массив тоже проще пареной репы: | ||
Строка 134: | Строка 134: | ||
*Nationality: British | *Nationality: British | ||
− | *World Championships: 1 | + | *World Championships: 1 LXF154.codephp.syntax.opt |
− | + | ||
− | + | ||
− | + | ||
+ | [[Файл:LXF154.codephp.syntax.opt.jpg |thumb|420px|Благодаря редактору кода со встроенной проверкой синтаксиса (типа Eclipse, победителя Сравнения IDE в LXF152/153), вы сэкономите время и избежите огорчений!]] | ||
+ | [[Файл:LXF154.code_php.f1cale_opt.jpeg|left|thumb|420px|Календарь «Формулы-1» 2012, который мы воссоздадим с нашим кодом.]] | ||
*Name: Lewis Hamilton | *Name: Lewis Hamilton | ||
Строка 148: | Строка 147: | ||
Функции foreach() нужны два параметра. Первый – массив, по которому мы пробегаем. Затем используется ключевое слово PHP as, затем – имя временной переменной, которой мы хотим присвоить текущий элемент массива (эта переменная доступна только внутри цикла). Буквально мы говорим: пройтись по всем элементам массива $drivers и сохранить информацию о каждом водителе во временный массив $driver. | Функции foreach() нужны два параметра. Первый – массив, по которому мы пробегаем. Затем используется ключевое слово PHP as, затем – имя временной переменной, которой мы хотим присвоить текущий элемент массива (эта переменная доступна только внутри цикла). Буквально мы говорим: пройтись по всем элементам массива $drivers и сохранить информацию о каждом водителе во временный массив $driver. | ||
− | + | {{Врезка|left|Заголовок=Скорая помощь |Ширина=15%|Содержание= | |
+ | Пользуйтесь отступами там, где это возможно, так как они позволят тексту «структурироваться» и сделать код на странице более читаемым. В некоторых текстовых редакторах отступы делаются автоматически, но большинство разработчиков пользуются либо одиночной табуляцией, либо двумя-четырьмя пробелами. }} | ||
Надеюсь, в этом примере вам покажутся знакомыми некоторые фрагменты из предыдущего руководства; мы выводим строку, склеенную из различных переменных – каждого поля с информацией о водителе из массива. Затем мы склеиваем другую строку – это HTML-код, позволяющий нам выполнить общее форматирование вывода. С последним элементом массива $driver[‘championships’] мы выводим два переноса строк; это позволяет отделить одного водителя от другого. | Надеюсь, в этом примере вам покажутся знакомыми некоторые фрагменты из предыдущего руководства; мы выводим строку, склеенную из различных переменных – каждого поля с информацией о водителе из массива. Затем мы склеиваем другую строку – это HTML-код, позволяющий нам выполнить общее форматирование вывода. С последним элементом массива $driver[‘championships’] мы выводим два переноса строк; это позволяет отделить одного водителя от другого. | ||
Строка 155: | Строка 155: | ||
В PHP есть два типа функций: | В PHP есть два типа функций: | ||
− | + | 1. Встроенные функции PHP, такие как date() и array_push(). | |
− | + | 2. Пользовательские функции. | |
− | Встроенные функции PHP, такие как date() и array_push(). | + | |
− | + | ||
− | + | ||
− | + | ||
− | Пользовательские функции. | + | |
− | + | ||
Займемся вторым типом функций (о нескольких встроенных функциях PHP мы уже рассказали). | Займемся вторым типом функций (о нескольких встроенных функциях PHP мы уже рассказали). | ||
Строка 188: | Строка 182: | ||
shout(); | shout(); | ||
+ | {{Врезка|right|Заголовок=Важнейшие ресурсы по PHP |Ширина=40%|Содержание= | ||
+ | Изучению PHP посвящено множество книг, и часто трудно сказать, какую (какие) стоит выбрать, чтобы они направили вас в верном направлении. Хотя я не могу выбрать книги, которые больше подойдут всего лично вам, я могу придать вам общее направление с помощью отличных сайтов по теме: | ||
+ | *http://php.net Основной ресурс для всего, связанного с PHP. | ||
+ | |||
+ | *http://php.net/manual/en/intro-whatcando.php Ощутите вкус того, что можно сделать с помощью PHP. | ||
+ | |||
+ | *http://phpsec.org/ Прекрасный ресурс, освещающий безопасность с PHP. | ||
+ | |||
+ | У меня имеется не одна книга по PHP, но я интенсивно пользуюсь онлайн-документацией по PHP – часто это быстрее, чем брать книгу и искать в ней необходимую страницу. | ||
+ | |||
+ | В поисках вдохновения советую пройти по второй ссылке – дайте волю воображению и подумайте о том, что вы хотели бы сделать! | ||
+ | |||
+ | Последняя ссылка важна тем, кто планирует устанавливать PHP на доступный извне web-сервер. Установите скрипт, так как он даст вам некоторые базовые настройки, затем прочтите книгу и ознакомьтесь с общими подходами к безопасности.}} | ||
Мы создали базовую функцию, но она всего лишь возращает то, что мы ей передали – довольно бессмысленно, кто б спорил. Пусть она делает нечто поинтереснее. Создайте новый файл PHP, скопируйте в него следующий код и сохраните его под именем function.php: | Мы создали базовую функцию, но она всего лишь возращает то, что мы ей передали – довольно бессмысленно, кто б спорил. Пусть она делает нечто поинтереснее. Создайте новый файл PHP, скопируйте в него следующий код и сохраните его под именем function.php: | ||
Строка 209: | Строка 216: | ||
Внутри функции можно писать любой код и выполнять любые преобразования строк. | Внутри функции можно писать любой код и выполнять любые преобразования строк. | ||
− | If() и else() | + | {{Врезка|right|Заголовок= На прошлом уроке...|Ширина=98%|Содержание= |
+ | Если вы пропустили предыдущую статью, вот ряд основных моментов, которые мы рассмотрели: | ||
+ | |||
+ | В стандартной версии PHP более 1000 функций, от простых – функций даты и времени, до более сложных – функций для работы с LDAP и базами данных MySQL. | ||
+ | |||
+ | Весь код PHP (обычно) начинается с ограничителя <?php и заканчивается ограничителем ?>. PHP поддерживает множество типов данных, таких как строки, булевские переменные, целые числа, массивы, объекты и др. | ||
+ | |||
+ | Переменные в PHP могут содержать один фрагмент данных в один момент времени. Переменные начинаются с символа $, за которым следует имя переменной, которое может начинаться только с буквы или символа подчеркивания. | ||
+ | |||
+ | Оставшаяся часть имени может содержать любой набор букв, символов подчеркивания или цифр; но она тем не менее является чувствительной к регистру. | ||
+ | |||
+ | Встроенная функция date() принимает более 35 входных параметров для точного представления результата, и выполняется на сервере, поэтому возвращается время сервера, а не время браузера. PHP-скрипт можно запускать как отдельный скрипт или как часть существующего шаблона, с помощью include(). }} | ||
+ | |||
+ | ==If() и else()== | ||
Вы заметите в нашем коде кое-что еще... мы будем выполнять проверку условия операторами if() и else(). If/else дает простой способ выбрать код, который нужно выполнить, основываясь на результате определенной проверки или условия. If() выполняется только в том случае, если значение в круглых скобках равно (или возвращает) TRUE, в противном случае вызывается блок else() – в каждом случае выполняется код в фигурных скобках, но только в одном из блоков: | Вы заметите в нашем коде кое-что еще... мы будем выполнять проверку условия операторами if() и else(). If/else дает простой способ выбрать код, который нужно выполнить, основываясь на результате определенной проверки или условия. If() выполняется только в том случае, если значение в круглых скобках равно (или возвращает) TRUE, в противном случае вызывается блок else() – в каждом случае выполняется код в фигурных скобках, но только в одном из блоков: | ||
Строка 229: | Строка 249: | ||
Теперь, используя наши массивы и знания о функциях, создадим календарь основных событий. | Теперь, используя наши массивы и знания о функциях, создадим календарь основных событий. | ||
− | Объединяем все вместе | + | ==Объединяем все вместе== |
Мы не будем перебарщивать и пока создадим календарь заездов F1 на 2012 год. Передадим сегодняшнюю дату функции и вернем текущий заезд, если сегодня они есть, в противном случае выведем общее сообщение. | Мы не будем перебарщивать и пока создадим календарь заездов F1 на 2012 год. Передадим сегодняшнюю дату функции и вернем текущий заезд, если сегодня они есть, в противном случае выведем общее сообщение. | ||
Строка 293: | Строка 313: | ||
$date = ‘13/5/2012’; | $date = ‘13/5/2012’; | ||
− | И с тем, закончим! | + | ==И с тем, закончим!== |
+ | {{Врезка|right|Заголовок=Через месяц |Ширина=40%|Содержание= | ||
+ | В следующей статье мы познакомимся с формами и практическими вопросами безопасности. Мы создадим простую форму и научимся проверять ее на корректность данных, а также дополним созданный в этой статье календарь F1 новой функциональностью. }} | ||
Вы узнали довольно много, если раньше не были знакомы с массивами и функциями, но, надеюсь, поняли, что все это очень важно в программировании. | Вы узнали довольно много, если раньше не были знакомы с массивами и функциями, но, надеюсь, поняли, что все это очень важно в программировании. | ||
Попробуйте изменить календарь; можно быть более конкретным с датами и создать события, которые происходят, например, ежедневно. В качестве упражнения взгляните на функцию date() и измените календарь так, чтобы выводимые сообщения менялись в зависимости от текущего часа. Помните, что вам потребуются записи не для каждого дня – только для каждого часа. | Попробуйте изменить календарь; можно быть более конкретным с датами и создать события, которые происходят, например, ежедневно. В качестве упражнения взгляните на функцию date() и измените календарь так, чтобы выводимые сообщения менялись в зависимости от текущего часа. Помните, что вам потребуются записи не для каждого дня – только для каждого часа. | ||
− | |||
− |
Текущая версия на 12:25, 24 июня 2018
|
|
|
Содержание |
[править] PHP: Строим онлайн-календарь
PHP Язык программирования, который пробил дорогу на множество сайтов
Часть 2: Развивая свое начальное руководство, Майк Маккей исследует массивы и функции, чтобы написать календарь основных событий для нашего сайта.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
На прошлом уроке мы поговорили об основах PHP, и в том числе о его создании и последующем развитии. Мы также познакомились с различными понятиями языка, такими как переменные, строки, целый числа и внутренняя функция PHP date(). Сегодня мы познакомимся со всем этим более подробно, а также узнаем о массивах и функциях, которые помогут нам создать полноценный календарь.
Мы предполагаем, что на вашей платформе Linux заданы необходимые настройки, и PHP-страницы обрабатываются через браузер, как мы и предлагали в предыдущем руководстве. Если нет – пожалуйста, вернитесь к предыдущей статье или обратитесь к врезке «Установка PHP в Linux».
Итак, что же такое массив? Чтобы помочь дать ему определение, вернемся к предыдущему руководству, когда мы хранили простое текстовое сообщение в переменной ($display_text). Проблема с переменными состоит в том, что в каждый момент они могут содержать только один элемент данных. Не правда ли, было бы здорово, если бы мы могли хранить несколько элементов данных в одной переменной? Здесь-то и настает черед массивов.
[править] Введение в массивы
Лучший способ представить массив – считать его особой переменной, которая хранит другие переменные. Массив позволяет хранить внутри столько элементов, сколько вам надо (единственное ограничение на размер массива накладывает выделенный PHP объем памяти). Можно пройтись по всем элементам массива (эта операция известна как траверсирование), и в PHP есть более 70 функций, позволяющих выполнять с массивами определенные действия, такие как поиск внутри массива, определение количества элементов, удаление дубликатов и даже изменение порядка элементов на обратный. Создать массив тоже проще пареной репы:
$data = array();
Мы создали новый пустой массив с именем $data. Массивы устроены в соответствии с архитектурой «индекс (ключ) – значение». По умолчанию при добавлении элемента в пустой массив его индекс в массиве равен 0. Если добавить еще один элемент, его индекс в массиве будет равен 1.
Также можно создать массив с заранее определенными данными (если вы уже знаете, что в нем будет). Для этого создадим массив так же, как прежде, но на этот раз укажем данные в списке через запятую:
$data = array(‘Red’, Orange’, ‘Yellow’, ‘Green’, ‘Blue’);
Здесь в дело вступает система ключей. PHP интерпретирует этот массив следующим образом:
0 = ‘Red’, 1 = ‘Orange’, 2 = ‘Yellow’, 3 = ‘Green’ , 4 = ‘Blue’
Как видите, каждому ключу соответствует свое значение. Важнее всего помнить, что индекс в массиве всегда начинается с 0, а не с 1, как многие могли бы предположить; вначале это легко забывается.
[править] Ассоциативные массивы
Массивы также обладают достаточной гибкостью, чтобы позволить нам задать собственные ключи (такие массивы называют ассоциативными). Это очень удобно, когда нужно связать значение с определенным ключом, а не полагаться на автоматические индексы.
Скажем, мы хотим сохранить в массиве информацию о человеке; для этого можно сделать следующее:
$person = array(‘name’ => ‘Mike Mackay’, ‘location’ => ‘Essex’, ‘age’ => 29);
С помощью команды ассоциации (=>) мы сообщаем PHP, что хотим создать ключ с именем name и связать его со значением Mike Mackay. В массиве можно хранить данные любых типов – даже другие массивы. PHP интерпретирует этот массив именно так, как мы ожидаем:
‘name’ = ‘Mike Mackay’, ‘location’ = ‘Essex’, ‘age’ = 29
Для обращения к элементу массива нужно лишь указать массив и необходимый ключ:
echo $data[0];
Эта команда выводит на экран слово Red. Чтобы вывести слово Orange, просто измените индекс с 0 на 1. В нашем массиве person все столь же просто – чтобы вывести имя, достаточно сделать следующее:
echo $person[‘name’];
[править] Добавим данные в массив
Если у нас есть массив, но мы хотим добавить туда еще данных, то как это сделать? На это есть несколько способов, которые часто зависят от того, используются ли в массиве пользовательские ключи или индексы; но чтобы добавить новый элемент в наш массив $data, можно просто сделать следующее:
$data[] = ‘Indigo’;
По квадратным скобкам после имени массива PHP понимает, что мы хотим добавить значение в массив. В PHP есть встроенная функция, которая делает то же самое:
array_push($data, ‘Indigo’);
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Эта функция принимает как минимум два аргумента. Первый – массив, в который нужно добавить данные; остальные – все элементы, которые затем будут добавлены в конец массива. Таким способом легко добавить несколько элементов в массив одновременно, например:
array_push($data, ‘Indigo’, ‘Violet’);
Если в массив нужно добавить всего один элемент, советую использовать первый метод (с помощью квадратных скобок), так как это позволяет избежать издержек вызова функции. Если мы хотим добавить новый элемент в массив $person, нужно только указать ключ, с которым требуется связать новое значение, и это значение:
$person[‘profession’] = ‘Developer’;
[править] Массивы внутри массивов
Как я уже сказал, массив может содержать данные любых типов, включая и другие массивы. Практика использования множественных массивов встречается довольно часто, и вы найдете ее очень удобной. Опять же, есть несколько способов этого достичь, и тот, что вы выберете, будет основываться на структуре вашего массива.
Для примера возьмем массив водителей McLaren на Формуле-1. Откройте текстовый редактор, введите следующий код и сохраните его под именем drivers.php в корневом каталоге web-сервера:
<?php
$drivers[] = array(
‘name’ => ‘Jenson Button’,
‘nationality’ => ‘British’,
‘championships’ => 1,
);
$drivers[] = array(
‘name’ => ‘Lewis Hamilton’,
‘nationality’ => ‘British’,
‘championships’ => 1,
);
?>
С помощью квадратных скобок мы сообщаем PHP, что хотим поместить данные о водителе в конец массива. Каждый элемент внутри главного array() должен отделяться от другого запятой. Теперь массив $drivers содержит два элемента: эти элементы – массивы, которые хранят информацию о водителях, которую мы хотим отобразить. В понимании PHP данные Дженсона Баттона [Jenson Button] находятся в $drivers[0], а данные Льюиса Хэмилтона [Lewis Hamilton] – в $drivers[1]. Мы могли бы создать пользовательские ключи вместо индексов 0 и 1, но для данного примера это не обязательно.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Можно было бы просто вывести данные командой echo, указав индекс элемента (например, $drivers[0]), но как отобразить все элементы, когда мы не знаем длины массива? К счастью, есть простая управляющая функция foreach(), которая позволяет это сделать.
Вы, возможно, спрашиваете, а почему мы не знаем длины массива? Ну, мы знаем, какие данные о водителе хранятся в каждом элементе (имя, национальность и количество чемпионских титулов), но запрос к базе данных (или похожая функция) может вернуть одного водителя, а может – пять. Общее количество элементов в массиве можно было бы определить с помощью функции PHP, но foreach() проще, и с ней код получается короче. Функция foreach() дает нам удобный способ проходить по элементам массива. Скопируйте приведенный ниже код в только что созданный файл drivers.php сразу после объявления массива:
<?php
foreach($drivers as $driver) {
echo ‘Name: ‘ . $driver[‘name’]. ‘
’;
echo ‘Nationality: ‘ . $driver[‘nationality’]. ‘
’;
echo ‘World Championships: ‘ . $driver[‘championships’].
‘
’;
}
?>
Открыв файл в браузере, вы должны увидеть общий список водителей на экране:
- Name: Jenson Button
- Nationality: British
- World Championships: 1 LXF154.codephp.syntax.opt
- Name: Lewis Hamilton
- Nationality: British
- World Championships: 1
В каждом цикле $drivers значение текущего элемента массива записывается в $driver (в первом цикле это Дженсон Баттон), а внутренний указатель массива перемещается вперед на один элемент; поэтому в следующем цикле из массива будет получен следующий элемент (Льюис Хэмилтон). Так продолжается до тех пор, пока не будет найден конец массива.
Функции foreach() нужны два параметра. Первый – массив, по которому мы пробегаем. Затем используется ключевое слово PHP as, затем – имя временной переменной, которой мы хотим присвоить текущий элемент массива (эта переменная доступна только внутри цикла). Буквально мы говорим: пройтись по всем элементам массива $drivers и сохранить информацию о каждом водителе во временный массив $driver.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Надеюсь, в этом примере вам покажутся знакомыми некоторые фрагменты из предыдущего руководства; мы выводим строку, склеенную из различных переменных – каждого поля с информацией о водителе из массива. Затем мы склеиваем другую строку – это HTML-код, позволяющий нам выполнить общее форматирование вывода. С последним элементом массива $driver[‘championships’] мы выводим два переноса строк; это позволяет отделить одного водителя от другого.
[править] Поговорим о функциях
В PHP есть два типа функций:
1. Встроенные функции PHP, такие как date() и array_push(). 2. Пользовательские функции. Займемся вторым типом функций (о нескольких встроенных функциях PHP мы уже рассказали).
Пользовательская функция – написанный нами особый блок PHP-кода, который может выполнять определенные действия в любой момент, когда он вызывается. Одни функции обрабатывают данные и затем отсылают обратно новое значение; другие выполняют однонаправленные операции, такие как запись данных в файл или вставку данных в базу данных. Чтобы создать функцию, нужно написать слово function, а за ним – имя функции (важно отметить, что имена функций могут начинаться только с букв или с символов подчеркивания), затем круглые скобки и пару фигурных скобок:
function shout() {
}
Мы также можем передать в функцию данные, которые будут использоваться внутри нее. Эти данные называются аргументами функции. При вызове функции и передаче ей информации функция присывает эти данные внутренней переменной $text, с которой она может работать в дальнейшем. Эти данные хранятся локально внутри функции и не перезаписывают никаких переменных вне функции:
function shout($text) {
}
Чтобы вернуть измененные данные обратно, можно воспользоваться оператором return:
function shout($text) {
return $text;
}
Для вызова функции укажите имя функции, за которым следуют двойные скобки с параметрами или без (в зависимости от требований функции):
shout();
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Мы создали базовую функцию, но она всего лишь возращает то, что мы ей передали – довольно бессмысленно, кто б спорил. Пусть она делает нечто поинтереснее. Создайте новый файл PHP, скопируйте в него следующий код и сохраните его под именем function.php:
<?php
echo shout(‘Hello World’);
function shout($text) {
return strtoupper($text);
}
?>
Запустив этот скрипт в браузере, вы должны увидеть надпись «HELLO WORLD». Мы передаем строку напрямую функции, в которой выводим на экран возвращенное значение.
У встроенной функции PHP strtoupper() есть простое назначение – она берет входную строку и переводит ее в верхний регистр. Можно было бы изменить функцию, использовав вывод командой echo вместо оператора return, но наш метод дает большую гибкость для различных целей (возможно, мы не всегда захотим выводить значение немедленно).
Внутри функции можно писать любой код и выполнять любые преобразования строк.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
[править] If() и else()
Вы заметите в нашем коде кое-что еще... мы будем выполнять проверку условия операторами if() и else(). If/else дает простой способ выбрать код, который нужно выполнить, основываясь на результате определенной проверки или условия. If() выполняется только в том случае, если значение в круглых скобках равно (или возвращает) TRUE, в противном случае вызывается блок else() – в каждом случае выполняется код в фигурных скобках, но только в одном из блоков:
if(condition is true) {
// Выполнить код этого блока
}
else {
// Выполнить код этого блока, а не того
}
В словесном выражении, нам нужно следующее: если сегодняшняя дата есть в качестве ключа в массиве, то выводим данные о заезде, иначе – выводим сообщение no races (заездов нет).
Теперь, используя наши массивы и знания о функциях, создадим календарь основных событий.
[править] Объединяем все вместе
Мы не будем перебарщивать и пока создадим календарь заездов F1 на 2012 год. Передадим сегодняшнюю дату функции и вернем текущий заезд, если сегодня они есть, в противном случае выведем общее сообщение.
Начнем с создания нового PHP-файла calendar.php, затем создадим функцию, которая хранит массив дат заездов:
<?php
function is_race_day() {
$race_dates = array(
‘18/3/2012’ => array(‘title’ => ‘Australian Grand Prix’, ‘location’ => ‘Melbourne’),
‘25/3/2012’ => array(‘title’ => ‘Malaysia Grand Prix’,‘location’ => ‘Kuala Lumpur’),
‘15/4/2012’ => array(‘title’ => ‘Chinese Grand Prix’, ‘location’ => ‘Shanghai’),
‘22/4/2012’ => array(‘title’ => ‘Bahrain Grand Prix’, ‘location’ => ‘Sakhir’),
‘13/5/2012’ => array(‘title’ => ‘Spanish Grand Prix’, ‘location’ => ‘Catalunya’),
);
}
?>
Пока я включил в него только пять первых дат сезона, но вы можете добавить и больше. Теперь давайте обновим функцию. Получите сегодняшнюю дату (см. описание функции date() в первой статье) и проверьте, проходит ли сегодня Гран-при; для этого мы воспользуемся встроенной функцией array_key_exists().
Вставьте следующий код сразу после окончания массива и перед закрывающей фигурной скобкой функции:
$date = date(‘m/d/Y’);
if(array_key_exists($date, $race_dates)) {
echo “Today’s race is the “ . $race_dates[$date][‘title’] . “ in “
. $race_dates[$date][‘location’] . “.”;
}
else {
echo “There is no race today.”;
}
Мы используем значение $date внутри функции array_key_exists() – эта функция принимает два параметра: ключ, который вы ищете (в данном случае это дата), и массив, в котором производится поиск (наш массив $race_dates).
Функция array_key_exists() возвращает булевское значение TRUE, если ключ существует, и FALSE – если нет. Если заезд найден, мы выводим информацию о нем. Мы можем получить эти данные, так как знаем, что ключ существует, поэтому используем переменную $date как ярлык для получения информации. По сути, это то же самое, что написать
echo $race_dates[‘13/5/2012’]
‘title’];
Осталось только вызывать функцию. Сделаем это точно так же, как и в предыдущем случае (с круглыми скобками) в верхней части скрипта:
is_race_day();
Затем можно запустить скрипт в браузере, введя calendar.php, или воспользоваться include() для его встраивания в существующий сайт. Если в день вызова скрипта существует заезд, мы получим информацию о нем. Для проверки просто жестко задайте дату в переменной $date:
$date = ‘13/5/2012’;
[править] И с тем, закончим!
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Вы узнали довольно много, если раньше не были знакомы с массивами и функциями, но, надеюсь, поняли, что все это очень важно в программировании.
Попробуйте изменить календарь; можно быть более конкретным с датами и создать события, которые происходят, например, ежедневно. В качестве упражнения взгляните на функцию date() и измените календарь так, чтобы выводимые сообщения менялись в зависимости от текущего часа. Помните, что вам потребуются записи не для каждого дня – только для каждого часа.