Академический Документы
Профессиональный Документы
Культура Документы
Массивы и функции
План вебинара
План вебинара
0 1 2 3
Простой массив
список значений, где каждый элемент хранится под
своим числовым индексом
Что такое список значений
Что такое список значений
Список категорий
Пример простого массива
$categories = [
"Видеоигры", "Животные", "Люди",
"Наука", "Приколы", "Спорт",
"Фейлы", "Фильмы и анимация"
];
Работа с простыми массивами
Работа с простыми массивами
Создание пустого массива:
$my_friends = [];
Работа с простыми массивами
Создание пустого массива:
$my_friends = [];
$cats = ["Игры","Приколы","Фейлы"];
Работа с простыми массивами
Создание пустого массива:
$my_friends = [];
$cats = ["Игры","Приколы","Фейлы"];
$my_friends = [];
$cats = ["Игры","Приколы","Фейлы"];
или
array_push($my_friends, "Tigger")
Работа с простыми массивами
Работа с простыми массивами
Чтение элемента по индексу:
print($cats[0]);
Работа с простыми массивами
Чтение элемента по индексу:
print($cats[0]);
$cats[0] = "Офис";
Работа с простыми массивами
Чтение элемента по индексу:
print($cats[0]);
$cats[0] = "Офис";
var_dump($cats);
array(3) {
[0]
=> string(10) "Игры"
Используется только в
[1]
=> string(14) "Приколы"
отладочных целях
[2]
=> string(10) "Фейлы"
}
Работа с простыми массивами
Работа с простыми массивами
Получить первый элемент массива:
print($cats[0]);
или
print(array_shift($cats));
Работа с простыми массивами
Получить первый элемент массива:
print($cats[0]);
или
print(array_shift($cats));
print($cats[count($cats) - 1]);
или
print(array_pop($cats));
Ассоциативный массив
массив, где каждый элемент сохраняется с
указанием ключа.
Ключ - это произвольная строка
Как описать своего кота?
невозможно описать кота одним словом, например
нельзя сказать, что кот это 42 или что моего кота
зовут ‘Феофан’.
Поэтому для описания вашего кота вам потребуется
много параметров
Как описать кота?
– кличка
– пол
– порода
– окрас
– тип шерсти
– рост, вес
– скорость
Пример ассоциативного массива
Пример ассоциативного массива
Одна гифка
Пример ассоциативного массива
Одна гифка Эта гифка в виде массива
$gif = [
'gif'
=> '/img/cat.gif’,
'title'
=> 'Типичный юзер’,
'author'
=> 'frexin’,
'likes_count'
=> 1
];
Ассоциативные массивы
Ассоциативные массивы
Добавление/замена значений:
$cat['weight'] = 2;
Работа с ассоциативными массивами
Создание массива:
$cat = [
'gender'
=> 'male’,
'name’
=> 'keks’,
'color’
=> 'yellow’,
'age’
=> 1.5
];
Добавление/замена значений:
$cat['weight'] = 2;
print($cat['name']);
Функции для работы с массивами
Тестовый массив
count($cats) 6
Считает количество элементов в массиве
Функции для работы с массивами
Тестовый массив
count($cats) 6
Считает количество элементов в массиве
isset($cats[2]) true
Проверяет существование в массиве элемента по его ключу (индексу)
Функции для работы с массивами
Тестовый массив
count($cats) 6
Считает количество элементов в массиве
isset($cats[2]) true
Проверяет существование в массиве элемента по его ключу (индексу)
count($cats) 6
Считает количество элементов в массиве
isset($cats[2]) true
Проверяет существование в массиве элемента по его ключу (индексу)
0 1 2
3 4 5
Двумерные массивы
Чаще всего двумерные массивы используются для
показа списка сложных объектов:
• телефонная книга
• список гифок
• список пользователей
Двумерные массивы
Чаще всего двумерные массивы используются для
показа списка сложных объектов:
• телефонная книга
• список гифок
• список пользователей
$gif = [
'gif'
=> '/img/cat.gif',
'title'
=> 'Типичный юзер',
'author'
=> 'frexin',
'likes_count'
=> 1
];
Двумерные массивы: практика
Одна гифка:
$gif = [
'gif'
=> '/img/cat.gif',
'title'
=> 'Типичный юзер',
'author'
=> 'frexin',
'likes_count'
=> 1
];
Список гифок:
print($gif_list[0]['title']);
Двумерные массивы: практика
Показать название первой гифки:
print($gif_list[0]['title']);
$index = array_rand($gifs);
$random_gif = $gifs[$index];
Двумерные массивы: практика
Показ одной гифки из массива в HTML коде:
<ul class="gif-list">
<?php $gif = $gifs[0]; ?>
<li class="gif gif-list
__item">
<div class="gif
__picture">
<a href="/gif/view?id
=<
?=$gif['id'];?>" class="gif
__preview">
<img src="uploads/preview_<
?=$gif['path']; ?>">
</a>
</div>
<div class="gif
__desctiption">
<h3 class="gif
__desctiption-title">
<a href="/gif/view?id
=<
?=$gif['id'];?>">
<
?=$gif['title'];?>
</a>
</h3>
<div class="gif
__description-data">
<span class="gif
__username">@<
?=$gif['authorName'];?>
</span>
<span class="gif
__likes"><
?=$gif['like_count']; ?>
</span>
</div>
</div>
</li>
</ul>
Перерыв на 10 минут
Циклы
конструкция языка, которая выполняет заданный
блок кода более одного раза
Синтаксис цикла
<?php
$last_num = 1;
while ($last_num < 10) {
print($last_num);
$last_num = $last_num + 1;
}
Пример цикла
Начальное значение
переменной
<?php
$last_num = 1;
while ($last_num < 10) {
print($last_num);
$last_num = $last_num + 1;
}
Пример цикла
Начальное значение
переменной
Выражение - условие цикла
<?php
$last_num = 1;
while ($last_num < 10) {
print($last_num);
$last_num = $last_num + 1;
}
Пример цикла
Начальное значение
переменной
Выражение - условие цикла
<?php
$last_num = 1;
while ($last_num < 10) {
print($last_num);
$last_num = $last_num + 1;
}
Тело цикла
Цикл на практике
Написать цикл, который выведет на странице список
страниц для постраничной навигации
Что должно получиться
Что должно получиться
На странице:
Что должно получиться
На странице:
В HTML-коде:
Цикл для пагинации
<?php
$pages_count = 3;
$cur_page = 1;
?>
<ul class="pagination__control">
<?php while ($cur_page <= $pages_count) { ?>
<li class="pagination__item">
<a href="?page=<?=$cur_page;?>"><?=$cur_page;?></a>
</li>
<?php $cur_page++; } ?>
</ul>
Перечисляемый массив
Массив – это «перечисляемый» тип данных.
Значения массива могут быть последовательно
перебраны циклом.
Список категорий
Написать код, который выведет в HTML список
категорий из подготовленного массива
Показ списка категорий
Показ списка категорий
Внешний вид
Показ списка категорий
Внешний вид HTML-код списка
Реализация на PHP
<?php
$categories = ["Видеоигры", "Животные", "Люди", "Наука",
"Приколы", "Спорт", "Фейлы", "Фильмы"];
?>
<div class="navigation
__item">
<h3 class="navigation
__title">Категории
</h3>
<nav class="navigation
__links">
<?php $index = 0;
$num = count($categories);
while ($index < $num) {
$cat = $categories[$index];
print ('<a href="#">' . $cat . '
</a>');
$index = $index + 1;
} ?>
</nav>
</div>
Цикл foreach
foreach - специальный вид цикла, который
необходим только для перебора массивов
Использование foreach
Здесь будет
следующее значение
Пользовательские
• Определяются программистом
• Используются как часть сценария
• Не имеют документирования
Виды функций
Пользовательские Встроенные
• Определяются программистом • Уже существуют в языке
• Используются как часть сценария • Нужны для решения общих задач
• Не имеют документирования • Хорошо документированы
Стандартная библиотека PHP
огромное количество (~ 2000) встроенных функций
на все случаи жизни
http://php.net/manual/ru/funcref.php
“Обратись к справочнику функций,
прежде чем писать код для
решения задачи самостоятельно”
–Мудрый Наставник
Категории функций
Категории функций
– Работа со строками
Категории функций
– Работа со строками
– Дата и время
Категории функций
– Работа со строками
– Дата и время
– Работа с файлами и каталогами
Категории функций
– Работа со строками
– Дата и время
– Работа с файлами и каталогами
– Математические функции
Категории функций
– Работа со строками
– Дата и время
– Работа с файлами и каталогами
– Математические функции
– Запуск внешних программ
Категории функций
– Работа со строками
– Дата и время
– Работа с файлами и каталогами
– Математические функции
– Запуск внешних программ
– Графика
Категории функций
– Работа со строками
– Дата и время
– Работа с файлами и каталогами
– Математические функции
– Запуск внешних программ
– Графика
– Базы данных
Категории функций
– Работа со строками
– Дата и время
– Работа с файлами и каталогами
– Математические функции
– Запуск внешних программ
– Графика
– Базы данных
– Работа с архивами
Из чего состоит функция
<?php
$firstDigit = 2;
$secondDigit = 3;
<?php
$firstDigit = 2;
$secondDigit = 3;
<?php
$firstDigit = 2;
$secondDigit = 3;
«Дедовский» способ
1. Поставить
отладочную запись
2. Добавить досрочный
выход из скрипта
3. Запустить сценарий
Окружение разработчика
print_r()
Умеет выводить на экран или возвращать содержимое массива
Функции для отладки
print_r()
Умеет выводить на экран или возвращать содержимое массива
var_dump()
Распечатывает и форматирует все содержимое массива вместе
с указанием типов и размерности
Функции для отладки
print_r()
Умеет выводить на экран или возвращать содержимое массива
var_dump()
Распечатывает и форматирует все содержимое массива вместе
с указанием типов и размерности
die()
– автодополнение и документирование
Возможности PhpStorm
– автодополнение и документирование
– статический анализ кода
Возможности PhpStorm
– автодополнение и документирование
– статический анализ кода
– автоматическая генерация кода
Возможности PhpStorm
– автодополнение и документирование
– статический анализ кода
– автоматическая генерация кода
– автоматический рефакторинг
Возможности PhpStorm
– автодополнение и документирование
– статический анализ кода
– автоматическая генерация кода
– автоматический рефакторинг
– поддержка HTML/JS/XML/чего угодно
Возможности PhpStorm
– автодополнение и документирование
– статический анализ кода
– автоматическая генерация кода
– автоматический рефакторинг
– поддержка HTML/JS/XML/чего угодно
– легкая навигация по коду
Возможности PhpStorm
– автодополнение и документирование
– статический анализ кода
– автоматическая генерация кода
– автоматический рефакторинг
– поддержка HTML/JS/XML/чего угодно
– легкая навигация по коду
– поддержка Гита и других VCS
Возможности PhpStorm
– автодополнение и документирование
– статический анализ кода
– автоматическая генерация кода
– автоматический рефакторинг
– поддержка HTML/JS/XML/чего угодно
– легкая навигация по коду
– поддержка Гита и других VCS
– запускать и отладка сценариев
Возможности PhpStorm
– автодополнение и документирование
– статический анализ кода
– автоматическая генерация кода
– автоматический рефакторинг
– поддержка HTML/JS/XML/чего угодно
– легкая навигация по коду
– поддержка Гита и других VCS
– запускать и отладка сценариев
– выкладка кода на сервер
Лицензия на PhpStorm
Каждый студент этого интенсива имеет право
на полугодовую лицензию PhpStorm