1.01M
Категория: ПрограммированиеПрограммирование

Введение в язык программирования PHP

1.

Введение в язык
программирования
PHP
Высшая Школа Программирования

2.

Программирование на PHP.
• PHP – это гибкий и легкий язык web-программирования, обладающий
широкими возможностями и неоспоримыми преимуществами.
• PHP это язык программирования, с помощью которого создают сайты,
активно взаимодействующие с пользователем, например: Интернетмагазин, веб - каталоги, почтовую рассылку на сайте, новостную ленту,
справочники, форумы и многое другое.
• PHP отличается от других подобных языков (JavaScript), тем, что код
выполняется на сервере. Если вы имеете скрипт на сервере, то клиент
получит результат работы этого скрипта, не имея возможности
определить, каков был исходный код.
• Наилучшим качеством PHP является то, что он прост для новичка в
программировании и предлагает много продвинутых возможностей для
программиста-профессионала.

3.

Программирование на PHP.
История развития.
• 1994 год – программист
Расмус Лердорф написал
собственные Perl-скрипты
для собственной
страницы и назвал
Personal Home Page
(PHP)

4.

Программирование на PHP.
История развития.
1997 год - два
программиста Энди
Гутманс и Зив Сураски
взяли за основу идею
Расмуса и переписали
PHP с нуля. Название
"Personal Home Page"
было изменено на
Hypertext Preprocessor

5.

• На PHP написаны популярные системы управления
контентом (CMS), например, WordPress, Joomla!,
Drupal.
На этом языке также написаны и популярные
фреймворки для создания сайтов,
например, Laravel, Yii2, Symfony.
• Наконец, масштабная и популярная соцсеть
«ВКонтакте» тоже создана на PHP

6.

Программирование на PHP.
История развития.
• 2000 год – вышла 4-я версия PHP, ставшая
стандартом для Веб-разработки.
• Последняя на сегодня версия — PHP 8.2.5 — появилась
в апреле 2023 года.
• PHP – это гибкий и легкий язык web-
программирования, обладающий широкими
возможностями и неоспоримыми
преимуществами.

7.

Динамический сайт, как правило, полностью управляется через
несложный веб интерфейс. Управление возможно не только отдельными
страницами, но и структурой разделов, а также информационной сеткой
сайта.
Управление сайтом доступно (и рекомендуется) менеджерам, которые
непосредственно общаются с клиентами и знают какие вопросы нужно
оперативно осветить на сайте.
Важный плюс – это оперативность публикации новых материалов,
объявлений и другой важной информации, которое делает общение с
посетителями (клиентами) сайта «живым» и интересным.

8.

• Для работы с языком программирования php
нам понадобится
• локальный сервер - open server для windows
• Или xamp для mac os

9.

Основные способы вставки PHP кода
PНР код состоит из инструкций, разделенных знаком ;
Правильные записи
<?php
инструкция1;
инструкция2;
?>
<?php
инструкция1;
инструкция2;
?>

10.

Вывод ошибок PHP
Если вы допустите в вашем PHP коде ошибку, то сервер выведет описание этой
ошибки прямо в браузер. Ошибки бывают трех типов: notice, warning и fatal.
Нотисы представляют собой замечания о том, что у вас в коде может что-то быть не
так. Хотя код по-прежнему будет работать. Лучше, однако, эти ошибки не оставлять
без внимания, а исправлять их.
Ворнинги представляют собой предупреждения о том, что что-то пошло не так. Как
правило при этом ваш код запустится, но будет работать не так, как вы хотите.
Фаталы возникают в том случае, когда PHP код не может быть выполнен. Как
правило это будет связано с допущенной вами синтаксической ошибкой.

11.

Вывод ошибок PHP
Есть, однако, проблема. По умолчанию нотисы и ворнинги выключены, а вместо
фаталов вы будете видеть просто белый экран. Это, конечно же, малоинформативно.
Давайте включим вывод всех ошибок:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'on');
?>
На выложенном в интернет сайте вывод ошибок лучше отключать.
Делается это вот так:
<?php
error_reporting(0);
ini_set('display_errors', 'off');
?>

12.

Вывод текста на экран. Оператор echo.
Когда нужно отобразить текст на веб-странице, то
оператор echo является наиболее употребляемым оператором
в PHP. Как его иcпользовать - после слова echo нужно
поместить строку текста в кавычки:
<?php
echo 'Привет от PHP';
?>
Отображение в браузере:
Привет от PHP
(для отображения текста можно использовать как двойные
кавычки, так и одинарные).
Для чисел кавычки можно не использовать:
<?php
echo 2014; ?>

13.

Комментарии
Однострочные
Многострочные

14.

Функция var_dump в PHP
Команда echo не всегда дает представление о том, что мы выводим. Для
отладки ваших программ лучше использовать специальную функцию
var_dump. Она помимо вывода строки или числа еще будет указывать тип
выводимых данных, а также их размер:
<?php
var_dump('12345'); // выведет '12345' и еще некоторую
полезную инфу
?>

15.

Переменные в PHP
PHP создан не только для форматирования
статичного текста. Для того, чтобы обрабатывать
различные данные были придуманы переменные.
Каждая переменная содержит определенное
значение.
Синтаксис переменной состоит из знака доллара $ и "свободного" идентификатора которому
присваивается какое-нибуть значение. Например:
<?php $name = "Виктор"; ?>

16.

Создание переменной
Переменная создается тогда, когда ей присваивают какоенибуть значение. Для присвоения значения переменной
используют оператор присвоения. Например:
<?php
$surname = "Петров";
$number = 1269794645;
$pi = 3.14159265;
$hello = "Hi all";
?>
Переменную можно вывести на экран с помощью
оператора echo, вот так:
<?php
$name = "Виктор";
echo "Ваше имя ", $name, "<br>";
?>

17.

Создадим переменyую которая будет содержать значение
количества бананов, вторая переменная количество лимонов, а
третья - их суммарное количество.
<?php
$bann = 5; // Бананы
$lim = 10; // Лимоны
$together = $bann + $lim; // Всего
echo "Количество фруктов ", $together;
?>
Отображение в браузере:
Количество фруктов 15

18.

Интерполяция переменных в PHP
Значение переменной может быть отображено например так:
<?php
$capital = "Paris";
echo "The capital of France is", $capital,"<br />";
?>
Но есть способ сделать это проще. Если имя переменной
заключено в двойные (не одинарные) кавычки, то переменная
интерполируется. Например:
<?php
$capital = "Paris";
echo "The capital of France is $capital <br />";
?>

19.

Переменные, содержащие имена других переменных
В PHP возможно размещать в значение переменных не только
обычные значения, но и имена других переменных.
<?php
$apples = 5;
$fruit = "apples"; /* Создаем переменную $fruit, которая содержит
имя переменной $apples */
// Сейчас мы можем вывести $apples, как $$fruit
echo "Число яблок - ", $$fruit; ?>
Для корректного отображения подобных переменных в строковых
константах, заключенных в двойные кавычки, следует также
использовать фигурные скобки:
${$fruit}.
Например:
<?php
echo "Число яблок - ${$fruit}";
?>

20.

Константы в PHP
Для описания константы используют функцию define,
которой передается ее имя и значение:
<?php
define("pi", 3.14); ?>
Имя константы нужно всегда заключать в кавычки, а ее
значение только тогда когда оно является строкой.
Пример использования константы:
<?php
define("pi", 3.14);
echo "Математическая константа Пи равняется ", pi;
?>

21.

Типы данных PHP
PHP является языком динамической типизации (тип переменной
определяется на основе её значения).
Типы, которые можно использовать в PHP:
•Boolean. Это логический тип, который содержит значение TRUE
или FALSE.
•Integer. Содержит значения целого числа (Например: 4 или 10
или другое целое число).
•String. Содержит значение текста произвольной длины
(Например: Олег, Киев, Австрия).
•Float. Вещественное число (Например: 1.2, 3.14, 8.5498777).
•Object. Объект.
•Array. Массив.
•Resource. Ресурс (Например: файл).
•NULL. Значение NULL.

22.

<?php
$bool = TRUE; // Значение Boolean
$int = 100; // Значение Integer
$string = "Переменная содержит текст"; // Значение String
$string2 = "5425"; // Значение String, так как число взято в кавычки
! $float = 44.122; // Значение Float
?>
Если надо изменить тип данных переменной, то для этого нужно
слева от имени переменной в круглых скобках указать нужный тип:
<?php
$str = "50000"; // Значение String
$new_str = (integer) $str; // Теперь значение стало Integer
echo $new_str + $new_str;
?>

23.

Математические операторы и математические
функции PHP
Числовые данные обрабатываются при помощи таких операторов :
+, -, *, /, % (остаток от деления), **
<?php
echo "2 + 2 = ", 2 + 2, "<br>";
echo "5 - 2 = ", 5 - 2, "<br>";
echo "10 * 10 = ", 10 * 10, "<br>";
echo "100 / 2 = ", 100 / 2, "<br>";
echo "10 % 2 = ", 10 % 2, "<br>";
echo "10 ** 2 = ", 10 ** 2, "<br>";
?>
Отображение в браузере: 2 + 2 = 4
5-2=3
10 * 10 = 100
100 / 2 = 50
10 % 2 = 0
10 ** 2 = 100

24.

Abs. Модуль числа, Sin. Синус, Sinh. Гиперболический синус. Cos. Косинус
Cosh. Гиперболический косинус. Acos. Арккосинус. Acosh. Гиперболический
арккосинус. Asin. Арксинус. Asinh. Гиперболический арксинус. Atan2. Арктангенс
частного двух переменных. Tan. Тангенс. Tanh. Гиперболический тангенс. Atan.
Арктангенс. Atan. Гиперболический арктангенс
Base_convert. Преобразование числа в строковом представлении из одной
системы счисления в другую. Decoct. Преобразование числа в восьмеричное
представление в виде строки. Bindec. Преобразование строки, предоставленной в
двоичном числе, в целое значение. Octdec. Преобразование строки,
представляющей восьмеричное число, в целое число. Hexdec. Преобразование
строки, которая представляет шестнадцатеричное число, в целое число. Ceil.
Округление числа в большую сторону. Floor. Округление числа в меньшую
сторону.Deg2rad. Градусы в радианы. Exp. Вычисление экспоненты числа.
Fmod. Остаток от деления двух чисел. Getrandmax. Макс. значение, которое
получают функцией rand(). Hypot. Вычисление гипотенузы по двум катетам.
Is_finite. Проверка, является ли число конечным вещественным числом.
Is_infinite. Проверка, является ли число бесконечностью.
Is_nan. Проверка, является ли значение Не числом(Not-A-Number).
Lcg_value. Генератор случайных чисел.
Log10. Десятичный логарифм. Log. Натуральный логарифм. Max. Максимум
заданных чисел. Min. Минимум заданных чисел. Mt_getrandmax. Макс. значение,
которое можно получить функцией mt_rand. Mt_rand. Генератор псевдослучайных
чисел по алгоритму. Pi. Значение числа π.
Pow. Возведение в степень. Round. Округляет число типа float. Sqrt. Квадратный
корень.

25.

<?php
echo "round(4.2) = ", round(4.2), "<br>";
?>
Отображение в браузере
round(4.2) = 4

26.

Операторы присвоения в PHP
Основным оператором присвоения является знак равенства =.
Он присваивает значение определенной переменной:
<?php $fruits=14; ?>
В одной строке можно присвоить одно значение сразу
нескольким переменным, например:
<?php $n = $m = $p = 3; echo $n, $m, $p; ?>
Отображение в браузере:
333
Также в PHP есть комбинированные операторы, которые делают
код более компактным. Вот их перечень:
+=, -=, /=, .=, %=, &=, |=, ^=, <=, >=
Например, если нужно прибавить 55 к значению
переменной $number, это можно записать как:
$number = $number + 55, а если использовать
комбинированный оператор, то так:
$number += 55.

27.

Увеличение и уменьшение на 1
Если есть переменна $a = 0, то чтобы добавить 1 к этой
переменной нужно написать: $a++, если нужно отнять 1, то
нужно записать так: $a--. Оператор ++ называют инкрементом,
а -- декрементом.
Оператор исполнения PHP
В PHP существует такой оператор, как оператор исполнения, он
нужен для того чтобы выполнять команды ОС и использовать
результат этого выполнения.
Любая строка, которая заключена в обратные апострофы —
` считаются как команда ОС. Например:
<?php
$d = `dir d:\\`;
echo $d;
?>
Как результат вы получите список директорий диска D.

28.

Строковые операторы PHP
PHP имеет два строковых операторы.
Первый - оператор конкатенации, который объединяет две
строки в одну.
Второй - конкатенирующий оператор присвоения .=, добавляет к
строке нужное значение. Например:
<?php
$d = "Hello";
$f = $d . " world"; // Теперь $f = "Hello world"
echo $f;
echo "<br/>";
$f .= " ! ! !"; // Теперь $f = "Hello world ! ! !"
echo $f;
?>

29.

1.
Создайте переменную $num и присвойте ей
значение 123. Выведите значение этой переменной
на экран с помощью команды echo.
2.
Создайте переменную $a. Запишите в нее значение
10, выведите его на экран. Затем запишите в нее
значение 20, выведите его на экран.
3.
Создайте переменную $a. Запишите в нее сумму
чисел 1, 2 и 3. С помощью команды echo выведите
на экран содержимое переменной $a.

30.

1.
Создайте переменную $c со значением 10 и
переменную $d со значением 5. Просуммируйте их, а
результат присвойте переменной $res. Выведите на
экран значение переменной $res.
2.
Создайте переменную $a со значением 1,
переменную $b со значением 2 и переменную $c со
значением 3. Выведите на экран их сумму.
3.
Запишите в переменную $a число 1.5, а в
переменную $b - число 0.75. Найдите сумму
значений этих переменных и выведите ее на экран.

31.

Условный оператор

32.

if (exp) statement
exp (выражение) - логическое выражение, которое может быть
истиной (TRUE) или ложью (FALSE).
statement (инструкция) выполняется тогда, когда exp — истина, и
не выполняется когда exp ложь!
Например, если скорость машины будет больше 60 то это
значит, что водитель превышает скорость:
<?php
$speed = 80;
if ($speed > 60)
echo "Превышение скорости !";
?>

33.

Если нужно чтобы при выполнении условия выполнялись сразу
несколько операторов, то нужно заключить их в фигурные
скобки { }:
<?php
$speed = 80;
if ($speed > 60)
{echo "Превышение скорости! <br>";
echo "Пожалуйста, уменьшите скорость!"; }
?>
Отображение в браузере:
Превышение скорости!
Пожалуйста, уменьшите скорость!

34.

Операторы сравнения PHP
Все операторы сравнения PHP указанные в таблице:
==
Равенство
Истина, если $a равно $b
===
Идентичност Истина, если $a равно $b, и они одного и того
ь
же типа
!=
Неравенство Истина, если $a не равно $b
<>
Неравенство Истина, если $a не равно $b
!==
Неидентично Истина, если $a не равно $b, или они не
сть
одного типа
<
Меньше
Истина, если $a меньше $b
>
Больше
Истина, если $a больше $b
<=
Меньше или Истина, если $a меньше или равно $b
равно
>=
Больше или
равно
Истина, если $a больше или равно $b

35.

<?php
$speed = 45;
if ($speed != 60)
echo "Скорость в пределах нормы";
?>
Если нужно применить к выражению несколько условий, то
используют логические операторы:
<?php
$speed = 40;
if ($speed > 35 && $speed < 55)
{ echo "Скорость в пределах нормы"; }
?>
&&
Логическое "И"
Истина, если истинно $a и $b
||
Логическое "ИЛИ"
Истина, если истинно $a или $b
xor
Логическое
"Исключающее ИЛИ"
Истина, если истинно $a или
$b, но не оба одновременно
!
Логическое "НЕ"
Истина, если $a ложь

36.

Оператор ELSE в PHP
Синтаксис оператора:
if(exp) statement1 else statement2
Пример:
<?php
$speed = 50;
if ($speed > 60)
echo "Превышение скорости !";
else
echo "Скорость в пределах нормы"
?>
В этом случае будет выведено сообщение
Скорость в пределах нормы

37.

Оператор ELSEIF в PHP
Оператор if имеет еще одно расширение, это оператор elseif, он
используется для последовательной проверки условий.
Синтаксис:
if (exp)
statement1
elseif (exp2)
statement2
Также можно записывать так:
if (exp)
statement1
else if (exp2)
statement2

38.

Пример:
<?php $speed = 50;
if ($speed < 30)
echo "Скорость в пределах нормы";
elseif ($speed == 30)
echo "Ваша скорость 30 км/час";
elseif ($speed == 40)
echo "Ваша скорость 40 км/час";
elseif ($speed == 50)
echo "Ваша скорость 50 км/час";
elseif ($speed == 60)
echo "Ваша скорость 60 км/час";
else echo "Превышение скорости !"; ?>

39.

Также, такой кусок кода можно записать и так:
<?php
$speed = 50;
if ($speed < 30)
echo "Скорость в пределах нормы";
elseif ($speed >= 30 && $speed <= 60)
echo "Ваша скорость {$speed} км/час";
else echo "Превышение скорости !";
?>
В этом случае будет выведено сообщение "Ваша скорость 50
км/час". А если бы не одно условие не подошло бы , то сработал
бы оператор else и мы увидели "Превышение скорости !".

40.

PHP также поддерживает альтернативный синтаксис для
конструкции if..else, при которой вместо открывающей фигурной
скобки ставится двоеточие, а в конце всей конструкции ставится
ключевое слово endif.
<?php
$a = 5;
if ($a > 0) :
echo "Переменная a больше нуля";
elseif ($a < 0) :
echo "Переменная a меньше нуля";
else :
echo "Переменная a равна нулю";
endif;
?>

41.

Комбинированный режим HTML и PHP
Также мы можем написать конструкцию if..else иным образом,
переключаясь внутри конструкции на код HTML:
<?php
$a = 5;
?>
<?php if ($a > 0) { ?>
<h2>Переменная a больше нуля</h2>
<?php } ?>
В данном случае само условие указывется в отдельном блоке php.
Важно, что при этом этот блок содержит только открывающую
фигурную скобку "{".Завершается конструкция if другим блоком
php, который содержит закрывающую фигурную скобку: <?php }
?>Между этими двумя блоками php располагается код, который
отображается на html-странице, если условие в if истинно. Причем
этот код представляет именно код html

42.

Тернарный оператор PHP
$var = condition ? exp1 : exp2;
Если условие выполняется, то переменной $var присваивается
результат вычисления exp1, иначе exp2.
Пример:
<?php
$speed = 55;
echo ($speed <= 60) ? "Скорость в пределах нормы" :
"Превышение скорости !"; ?>
В результате мы увидим строку - "Скорость в пределах нормы".

43.

Функции ISSET и UNSET в PHP
Функция isset предназначена для определения в коде наличия
переменной. В качестве параметра в данную функцию
передается проверяемая переменная.
На следующем примере мы хотим проверить существует ли у
нас переменная$g$g:
= 5;
if (isset($g)){
echo «Переменная g существует и равна: $g»;
}
else{
echo «Переменная g не существует»;
}
Результатом выполнения данного кода будет вывод на экран
цифры 1. Это означает, что переменная существует. В случае
проверки заведомо несуществующей переменной, результатом
выполнения будет пустота, то есть по другому, ничего не будет
выведено на экране.

44.

Функции ISSET и UNSET в PHP
Мы научились создавать переменные в php и придавать им
значения. Теперь рассмотрим функцию unset, которая
позволяет уничтожать данные переменные.
$g = 10;
unset($g);
echo «$g»;
Результатом выполнения данной программы будет ошибка, а
не вывод на экран числа 10. Так произойдет потому, что до
выполнения echo «$g», переменая $g будет уничтожена
функцией unset и уже она просто не будет физически
существовать.

45.

Комбинированный режим HTML и PHP
Также мы можем написать конструкцию if..else иным образом,
переключаясь внутри конструкции на код HTML:
<?php
$a = 5;
?>
<?php if ($a > 0) { ?>
<h2>Переменная a больше нуля</h2>
<?php } ?>
В данном случае само условие указывется в отдельном блоке php.
Важно, что при этом этот блок содержит только открывающую
фигурную скобку "{".Завершается конструкция if другим блоком
php, который содержит закрывающую фигурную скобку: <?php }
?>Между этими двумя блоками php располагается код, который
отображается на html-странице, если условие в if истинно. Причем
этот код представляет именно код html

46.

Оператор выбора
Оператор switch

47.

Иногда использование конструкции операторов
if .. else if несколько утомляет.
Чтобы исправить эту ситуацию есть оператор switch.
Синтаксис:
switch (exp){
case condition1: exp1; break;
case condition2: exp2; break;
case condition3: exp3; break;
default: exp4;
break; }
Сначала записывается ключевое слово switch, после которого в скобках
записывается некоторое выражение.
Далее, после слова case нужно перечислить возможные варианты
значений, если значение истина, то выполняется группа операторов,
которые записаны до оператора break. Если ни одно условие не походит,
то выполняется оператор default (если оператор default не записывать, то
при не выполнении никаких других условий ничего не произойдет).

48.

<?php
$speed = 55;
switch($speed)
{ case 30 : echo "Ваша скорость 30 км/час"; break;
case 58 : echo "Ваша скорость 50 км/час"; break;
case 70 : echo "Превышение скорости !"; break;
default : echo "Скорость в пределах нормы"; break; }
?>
Также, при использовании оператора switch, мы можем записать
несколько условий для некоторого действия:
<?php
$speed = 55;
switch($speed)
{ case 30 : case 58 : echo "Скорость в пределах нормы"; break;
case 70 : echo "Превышение скорости !"; break;
default : echo "Скорость в пределах нормы"; break; } ?>
В результате мы увидим — "Скорость в пределах нормы".

49.

Начиная с версии 8.0 в PHP была добавлена поддержка
другой, похожей конструкции - match. Она позволяет
оптимизировать конструкцию switch. Конструкция match
также принимает некоторое выражение и сравнивает его с
набором значений.Синтаксис:
<?php
$a = 2;
$operation = match ($a) {
1 => "сложение",
2 => "вычитание",
default => "действие по умолчанию",
};
echo $operation;
?>
Итак, match в скобках также принимает некоторое сравниваемое. Сам блок
кода match также обертывается в фигурные скобки, однако в конце после
закрывающей фигурной скобки необходимо поставить точку с запятой. А
вместо операторов case просто указываются значения, с которыми
сравнивается выражение.Но в отличие от switch, конструкция match
возвращает некоторый результат. Поэтому после каждого сравнимого значения
ставится оператор =>, после которого идет возвращаемый результат.

50.

1.
Дано число. Если оно больше 10, то увеличьте его на
100, иначе уменьшите на 30.
2.
Дано натуральное число. Если оно четное, то
уменьшите его в 2 раза, иначе увеличьте в 3 раза.
3.
Дано число. Если оно не меньше 50, то выведите
квадрат этого числа, если же это число больше 10 и
меньше 30, то выведите ноль, в остальных случаях
выведите слово
"Ошибка“

51.

4.
Дано два числа. Вывести наибольшее из них.
5.
Дано два числа. Вывести 'Да', если они отличаются
на 100, иначе вывести 'Нет’
6.
Дано два числа. Вывести 'Да', если они отличаются
не более чем на 20, иначе вывести 'Нет’.
7.
Дан номер месяца. Вывести название поры года
(весна, лето и так далее) или слово 'Ошибка', если
месяца с таким номером не существует.

52.

1.
Пусть в константе isAdmin содержится true, если
пользователь админ, и false, если нет,
Если пользователь админ – выведите на экран div,
содержащий в себе приветствие Админа сайта и кнопку
«Войти в панель управления»
Если пользователь не админ – выведите на экран span с
жирным текстом внутри «У вас нет прав доступа»
Попробуйте подключить к странице стили CSS, чтобы
оформить всё содержимое и проверьте работают ли стили с
php
2.
Cайт поддерживает 3 языка - русский, английский,
немецкий. Переменная $lang может принимать 3
значения - 'ru', 'en' и 'de'. В зависимости от значения
переменной $lang следует вывести фразу на одном
из языков. Используйте switch-case для решения
задачи

53.

Циклы в php

54.

Цикл FOR в PHP
Основной задачей компьютеров есть обработка большого
количества информации, которое у человека заняло бы очень
много времени.
Для обработки таких задач компьютер использует циклы.
Первым циклом которым мы начнем главу будет цикл for. Ниже
приведен его синтаксис:
for (exp1; exp2; exp3) statement
В выражение exp1 вставляют начальное значение для счетчика
цикла — переменная, которая считает количество раз
выполнения тела цикла.
exp2 — задает условие повторения цикла. Цикл будет
выполнятся пока это условие будет true.
exp3 — выполняется каждый раз после выполенения тела цикла.
Обычно, оно используется для изменения (увеличение или
уменьшение) счетчика.

55.

Пример:
<?php
for ($i = 0; $i < 10; $i++)
{ echo "Вывод строки. 10 раз <br>"; }
?>
Отображение в браузере:
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз
Вывод строки. 10 раз

56.

Циклы WHILE в PHP
Цикл WHILE, вместо использования счетчика цикла проверяет
некоторое условие до того, пока это условие Истина (TRUE).
Синтаксис:
while (exp) statement
Условие проверяется перед выполнением цикла, если оно будет
Ложным в начале, то цикл не выполнится ни разу!
В теле цикла должна быть переменная которая будет оказывать
влияние на условие, чтобы предотвратить зацикливание.
Пример:
<?php
$counter = 0;
while ($counter < 5) {
echo "Эта строка выведется 5 раз <br>";
$counter++; } ?>

57.

Цикл DO... WHILE в PHP
Главное отличие цикла DO ... WHILE от WHILE в том, что
первый сначала выполняется тело цикла, а потом проверяет
условие. Т.е., если условие сразу Ложь, то цикл выполнится один
раз.
Синтаксис
do statement while (condition)
Использование цикла DO... WHILE:
<?php
$counter = 6;
do
{ echo "Эта строка выведется 1 раз
<br>";
$counter++;
}
while ($counter < 5);
?>

58.

Цикл FOREACH в PHP
Цикл FOREACH представлен для упрощения работы с массивами. Массивы
состоят из отдельных элементов, цикл FOREACH предназначен для перебора
этих элементов без счетчика.
Синтаксис:
foreach (имяМассива as переменнаяДляЭлемента) {
/*
Код, который находится между фигурными
скобками будет повторяться столько раз,
сколько элементов у массива.
*/
}

59.

Цикл FOREACH в PHP
Использование цикла:
<?php
$array = array("Apple", "Limon", "Chery", "Oranges");
foreach ($array as $value) {
echo "Вы выбрали фрукт - $value <br>";
}
?>

60.

Оператор Break
Иногда возникает ситуация, когда требуется выйти из цикла, не
дожидаясь его завершения. В этом случае мы можем
воспользоваться оператором break. Синтаксис:
<?php
for ($i = 1; $i < 10; $i++) {
$result = $i * $i;
if ($result > 80) {
break;
}
echo "Квадрат числа $i равен $result
<br/>";
}
?>

61.

Оператор continue
Для управления циклами также применяется оператор continue.
Он осуществляет переход к следующей итерации цикла:
<?php
for ($i = 1; $i < 10; $i++) {
if ($i == 5) {
continue;
}
echo "Квадрат числа $i равен " . $i *
$i . " <br/>";
}
?>

62.

Вложенные циклы
Циклы могут располагаться внутри циклов. Например,
используем вложенный цикл, чтобы вывести таблицу умножения:
<?php
for ($i = 1; $i < 10; $i++)
{
echo "<tr>";
for ($j = 1; $j < 10; $j++)
{
echo "<td>" . $i * $j . "</td>";
}
echo "</tr>";
}
?>
?>

63.

1.
Найдите с помощью цикла сумму чисел от 1 до 100.
2.
Выведите с помощью цикла столбец четных чисел от
1 до 100.
3.
Выведите с помощью цикла столбец чисел от 1 до
100.
4.
Найдите с помощью цикла сумму тех чисел от 1 до
100, которые делятся на 7

64.

1.
Найдите с помощью цикла сумму корней чисел от 1
до 15. Результат округлите до двух знаков после
дробной части
2.
Найдите с помощью цикла сумму квадратов чисел от
1 до 15.
3.
Напишите скрипт, который будет находить факториал
числа. Факториал - это произведение всех целых
чисел, меньше данного, и его самого.

65.

Строки в php

66.

Обращение к символам строки
PHP позволяет обращаться к отдельным символам строки как к
элементам массива по числовому индексу.
Индексация символов, как и в массиве, начинается с нуля:
$str = "Hello Tom";
echo $str[0]; // получим первый символ - H
$str[1] = "i"; // поменяем второй символ
echo "<br>" . $str . "<br>";
// Hillo Tom

67.

Функции для обработки строк в PHP
С помощью этих функций можно, например, обрезать строку,
дописывать строку, заменить часть строки и много другое. Это
очень полезный инструмент при разработке скриптов.
Все функции для обработки строк перечислены ниже:
Функция substr
Функция substr используется для получения части строки.
Синтаксис:
string substr (string $string, int $start [, int $length ])
Первый параметр $string - строка из которой нужно получить
подстроку начиная с позиции $start и длинной в $length.
Пример:
<?php echo substr("Hello world", 6, 5); ?>
Отображение в браузере:
world
Последний параметр $length необязательный
<?php echo substr("Hello world !!!", 6); ?>

68.

Функция strpos
Функция возвращает позицию первого вхождения подстроки в
строку
int strpos (string $string , mixed $needle [,
int $offset = 0 ])
$string - строка в которой будет произведен поиск,
$needle - строка, которую нужно найти,
$offset - необязательный параметр, если этот параметр указан,
то поиск будет начат с указанного количества символов с начала
строки
Пример:
<?php
echo strpos("Hello world", "world");
?>
В результате, получим 6, так как строка "world" впервые
встречается на 6 позиции

69.

• Функция strtolower преобразовывает строку в нижний регистр.
Используйте функцию mb_strtolower (она работает аналогичным
образом, но корректно обрабатывает кириллицу)
<?php echo strtolower('ABCDE'); ?> - 'abcde’
• Функция strtoupper преобразовывает строку в верхний регистр
<?php echo strtoupper('abcde'); ?> - 'ABCDE’
• Функция lcfirst преобразует первый символ строки в нижний
регистр. Не работает с кириллицей.
<?php echo lcfirst('Abcde'); ?> - 'abcde’
• Функция ucfirst преобразует первый символ строки в верхний
регистр. Не работает с кириллицей.
<?php echo ucfirst('abcde'); ?> - 'Abcde’
• Функция ucwords преобразует первый символ каждого слова в
строке в верхний регистр. Не работает с кириллицей.
<?php echo ucwords('lorem ipsum dolor sit amet'); ?> - 'Lorem Ipsum Dolor
Sit Amet'

70.

• Функция strlen возвращает длину строки (количество символов в
строке).
<?php echo strlen('abcde'); ?> - 5
• Функция str_replace ищет в строке заданный текст и меняет его на
другой. str_replace(что меняем, на что меняем, где меняем);
<?php echo str_replace('a', '!', 'abcabc'); ?> - '!bc!bc’
<?php echo str_replace(['a', 'b', 'c'], [1, 2, 3], 'abcabc'); ?> -123123
• Функция strtr осуществляет поиск и замену символов в строке.
В первом варианте функция принимает массив замен: ключами
служит то, что мы меняем, а значениями - на что будем менять:
<?php echo strtr('111222', ['1'=>'a', '2'=>'b']); ?> - 'aaabbb’
<?php echo strtr('111222', '12', 'ab'); ?> - 'aaabbb’
Во втором варианте функция одним параметром принимает строку
с символами, которые будут заменены, а вторым параметром строку с символами, на которые будет производится замена.

71.

• Функция substr_replace заменяет указанную часть строки на
другую.
<?php echo substr_replace('abcde', '!!!', 1, 3); ?> - 'a!!!e’
<?php echo substr_replace('abcde', '!!!', 1); ?> - 'a!!!’
• Функция strpos возвращает позицию первого вхождения подстроки в
другую строку. Первым параметром функция принимает строку, в
которой осуществляется поиск, вторым параметром - подстроку,
которую следует искать. strpos(где ищем, что ищем, [откуда
искать]);
<?php echo strpos('abcde abcde', 'c'); ?> - 2
<?php echo strpos('abcde abcde', 'c', 3); ?> - 8
<?php if(strpos('http://site.ru', 'http://') === 0) {
echo 'да’;
}
else {
echo 'нет’;
} ?>

72.


Функция strrpos возвращает позицию последнего вхождения подстроки
<?php echo strrpos('abcde abcde', 'a'); ?> - 6
Функция explode разбивает строку в массив по определенному
разделителю. explode(разделитель, строка);
<?php
$date = '2025-12-31’;
$arr = explode('-', $date);
['2025', '12', '31']
var_dump($arr);
?>
Пусть дана дата в формате '2025-12-31’. Cделаем из нее дату в
формате '31.12.2025’.
<?php
$date = '2025-12-31’;
$arr = explode('-', $date);
echo $arr[2].'.'.$arr[1].'.'.$arr[0];
?>
'31.12.2025'

73.


Функция implode сливает массив в строку с указанным разделителем.
implode(разделитель, массив);
сольем массив ['a', 'b', 'c', 'd', 'e'] в строку 'a-b-c-d-e’
<?php
$arr = ['a', 'b', 'c', 'd', 'e’];
'a-b-c-d-e'
echo implode('-', $arr);
?>
Функция str_split разбивает строку в массив. Первым параметром она
принимает строку, а вторым - количество символов в элементе
массива.
str_split(строка, количество символов в элементе массива);
разобьем строку по 2 символа в элементе массива
<?php
$str = 'abcde’;
$arr = str_split($str, 2);
var_dump($arr);
?>
['ab', 'cd', 'e'];

74.

• разобьем строку по 3 символа в элементе массива:
<?php
$str = 'abcdefg’;
$arr = str_split($str, 3);
['abc', 'def', 'g'];
var_dump($arr);
?>
• найдем сумму цифр числа
<?php
$num = 12345;
echo array_sum(str_split($num, 1));
15
?>
Разобили число в массив с помощью str_split и сложили
элементы этого массива с помощью array_sum

75.


Функция trim удаляет пробелы с начала и конца строки. Может также
удалять другие символы, если их указать вторым параметром
trim(строка, [символы]);
<?php echo(trim(' abcde ')); ?> -'abcde’
<?php echo trim('/abcde/', '/'); ?> -'abcde’
<?php echo trim('/abcde.', '/.'); ?> -'abcde’
Функция удаляет любое количество указанных символов, если они стоят
с краю
<?php echo trim('../../abcde...', '/.'); ?> -'abcde’
Можно указать диапазон символов с помощью двух точек '..'. К примеру,
укажем, что мы хотим удалить символы от 'a' до 'd’:
<?php echo trim('abcde', 'a..d'); ?> -’e’
Функция ltrim удаляет пробелы с начала строки.
Функция rtrim удаляет пробелы с конца строки.

76.

• Функция strrev переворачивает строку так, чтобы символы шли в
обратном порядке
<?php echo strrev('12345'); ?> - '54321’
• Функция str_shuffle переставляет символы в строке в случайном
порядке.
<?php echo str_shuffle('abcde'); ?>
• Функция str_repeat повторяет строку заданное количество раз.
str_repeat(строка, сколько раз повторить);
<?php echo str_repeat('x', 5); ?> - 'xxxxx’
<?php echo str_repeat('123', 3); ?> - '123123123’

77.

• Функция number_format позволяет форматировать число. В
основном используется для того, чтобы отделять тройки чисел
пробелами, к примеру, из 1234567 она может сделать 1 234 567
• Кроме того, функция позволяет регулировать количество знаков
после дробной части. Это количество задается вторым
необязательным параметром.
• number_format(число);
• number_format(число, количество знаков);
• number_format(число, количество знаков, разделитель дробной части,
разделитель тысяч);
<?php echo number_format(1234567); ?> - 1,234,567
<?php echo number_format(1234.567, 2); ?> - 1,234.57
<?php echo number_format(1234.567, 2, '/', ' '); ?> - 1 234/57
<?php echo number_format(1234.567, 2, '.', ' '); ?> - 1 234.57

78.

• Функция
str_pad дополняет строку другой строкой до заданной
длины.
• Первый параметр принимает строку, второй - количество символов,
до которого следует дополнить строку, третий параметр - то, чем
следует заполнять строку.
• Четвертый
необязательный параметр задает, с какой стороны
заполнять строку. Этот параметр может принимать следующие
значения:
STR_PAD_LEFT
дополнять
строку
слева, STR_PAD_RIGHT - дополнять строку справа (это значение по
умолчанию).
str_pad(строка, до скольки символов, чем заполнить, [с какой
стороны]);
<?php $arr = 'abcde'; echo str_pad($arr, 10, '+'); ?> - 'abcde+++++’
<?php $arr = 'abcde'; echo str_pad($arr, 10, '+', STR_PAD_LEFT); ?> '+++++abcde'

79.

• Функция htmlspecialchars позволяет вывести теги в браузер так,
чтобы он не считал их командами, а выводил как строки.
<?php echo htmlspecialchars('<b>жирный текст</b>'); ?> - '<b>жирный
текст</b>’
Функция strip_tags удаляет HTML теги из строки, не трогая их
содержимого. Вторым необязательным параметром можно
указать разрешенные теги - они не будут удалены. Их
указываем в таком формате: '<b>' или '<b><p>', если хотим
оставить несколько тегов strip_tags(строка, [разрешенные теги]);
<?php echo strip_tags('lorem <b>ipsum</b> dolor sit amet');
?> - 'lorem ipsum dolor sit amet’
• Функция ord возвращает ASCII код символа. Параметром
принимает один символ или целую строку (в этом случае
возвращает код ее первого символа)
<?php echo ord('a'); ?> - 97
<?php echo ord('abcde'); ?> - 97

80.

Функция chr находит символ по его ASCII коду
<?php echo chr(97); ?> - 'a’
выведем случайную маленькую букву латинского алфавита. Для этого
посмотрим на таблицу ASCII и увидим, что маленькие латинские буквы
имеют коды от 97 до 122. Поэтому сгенерируем случайное число в этом
диапазоне с помощью mt_rand и результат возьмем в chr
<?php echo chr(mt_rand(97, 122)); ?>
сформируем случайную строку из 6 маленьких латинских букв
<?php
$str = ’ ’;
for ($i = 1; $i <= 6; $i++) {
$str .= chr(mt_rand(97, 122));
}
echo $str; ?>

81.

• Функция strchr находит первое вхождение подстроки в строку и
возвращает часть строки начиная этого места до конца строки.
адрес страницы без доменного имени из url (вернет подстроку,
начиная с первого /, до конца строки)
<?php
echo
strchr('site.ru/folder1/folder2/page.html',
'/folder1/folder2/page.html’
'/');
?>
-
Функция strstr находит первое вхождение подстроки в строку и
возвращает часть строки начиная этого места до конца строки. В
отличие от strchr ищет вхождение подстроки из нескольких
символов, а не вхождение одного символа.

82.

1.
Дана строка 'php'. Сделайте из нее строку 'PHP’.
2.
Дана строка 'london'. Сделайте из нее строку 'London’.
3.
Дана строка 'London'. Сделайте из нее строку 'london’.
4. Дана строка 'html css php'. Найдите количество
символов в этой строке.
5.
Дана переменная $password, в которой хранится пароль
пользователя. Если количество символов пароля больше
5-ти и меньше 10-ти, то выведите пользователю
сообщение о том, что пароль подходит, иначе сообщение
о том, что нужно придумать другой пароль.
6.
Дана строка. Проверьте, что она заканчивается на '.png'.
Если это так, выведите 'да', если не так - 'нет’.

83.

7.
Дана строка '31.12.2013'. Замените все точки на
дефисы.
8.
Дана строка $str. Замените в ней все буквы 'a' на
цифру 1, буквы 'b' - на 2, а буквы 'c' - на 3.
9.
Дана строка с буквами и цифрами, например,
'1a2b3c4b5d6e7f8g9h0'. Удалите из нее все цифры.
То есть в нашем случае должна получится строка
'abcbdefgh’.
10. Дана строка 'abc abc abc'. Определите позицию
первой буквы ‘b’.
11.
Дана строка 'abc abc abc'. Определите позицию
последней буквы 'b'.

84.

7.
Создайте скрипт, который выводит каждый символ
строки в отдельной строке.
8.
Напишите программу, которая выводит строку в
обратном порядке.
9.
Напишите программу для проверки, является ли
заданная строка палиндромом (читается одинаково с
начала и с конца) без использования встроенных
функций.
10. Создайте скрипт, который заменяет все пробелы в
строке на символ подчеркивания "_".
11. Напишите скрипт, который разбивает строку на слова
и выводит их в обратном порядке.

85.

Массивы PHP

86.

Одномерные
массивы

87.

Создание массивов в PHP
• Массив представляет собой переменную, в которой в упорядоченном виде
можно хранить целый набор каких-то значений.
• Для создания массива используются квадратные скобки:
<?php
$arr = []; // создаем массив $arr
?>
• Каждое значение списка, который мы записали в массив, называется
элементом массива. Как вы видите, элементы разделяются между собой
запятой.
• Кроме строк и чисел в массиве можно хранить все допустимые типы
данных PHP, а также смешивать их между собой в одном массиве, пример:
<?php
$arr = [1, 2, 'a', 'b', null, true, false];
?>

88.

В качестве индекса элементов массива мы можем использовать
не только числа:
<?php
$arr["Berlin"] = 3000000;
$arr["Paris"] = 5000000;
$arr["LA"] = 15000000;
?>
В качестве значений индексов элементов и самих элементов мы
можем использовать одинаковые типы данных одновременно!
Также существует сокращенная запись для индексирования:
<?php
$arr[] = 3000000; $arr[] = 5000000; $arr[] =
15000000;
?>
В этом случае первый элемент (3000000) получит индекс 0! Нужно
иметь это ввиду.

89.

Для создания массива можно использовать функцию array:
<?php
$arr = array("php", "html", "css");
?>
В этом случае первый элемент получит индекс 0. Если нужно
присвоить какой-то другой номер, то можно воспользоваться
конструкцией =>:
<?php
$arr = array(1 => "php", "html", "css"); ?>
Теперь элемент под номером 1 это "php", а не "html"! Также, можно
создать массив со строковым индексом:
<?php
$arr = array("first" => "php", "second" =>
"html", "third" => "css"); ?>

90.

Модификация элементов массива в PHP
Есть массив:
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
?>
Для того, чтобы изменить значение элемента
используем оператор присвоения:
<?php
$arr[1] = "JAVASCRIPT";
?>

91.

Длина массива
• Длина массива находится с помощью функции count:
<?php
$arr = [1, 2, 3];
echo count($arr); // выведет 3
?>
• Последний элемент массива также получается аналогично последнему
символу строки:
<?php
$arr = [1, 2, 3];
echo $arr[count($arr) - 1]; // выведет 3
?>

92.

Инкремент и декремент в PHP
• Можно также применять операции инкремента и декремента:
<?php
$arr = [1, 2, 3, 4];
$arr[0]++;
++$arr[1];
$arr[2]--;
--$arr[3];
var_dump($arr); // выведет [2, 3, 2, 3]
?>

93.

Заполнение массивов
• Элементы в массив не обязательно добавлять сразу в момент объявления
этого массива. Можно вначале объявить этот массив пустым, а затем
добавить в него необходимые элементы, вот так:
<?php
$arr = [];
$arr[] = 'a';
$arr[] = 'b';
$arr[] = 'c';
// создаем пустой массив
// элемент добавится в ключ 0
// элемент добавится в ключ 1
// элемент добавится в ключ 2
var_dump($arr); // выведет ['a', 'b', 'c']
?>
• Массив не обязательно должен быть изначально пустым - там уже
что-то может быть, но мы все равно можем добавлять новые
элементы

94.

Заполнение массивов
• При необходимости ключи можно указать явным образом:
<?php
$arr = []; // создаем пустой массив
$arr[0] = 'a'; // в ключ 0 добавим элемент 'a'
$arr[1] = 'b'; // в ключ 1 добавим элемент 'b'
$arr[2] = 'c'; // в ключ 2 добавим элемент 'c'
var_dump($arr); // выведет ['a', 'b', 'c']
?>
• Ключи могут быть не только числовыми, но и строковыми:
<?php
$arr = [];
$arr['a'] = 1;
$arr['b'] = 2;
$arr['c'] = 3;
var_dump($arr); // выведет ['a' => 1, 'b' => 2, 'c' => 3]
?>

95.

Удаление элементов массива в PHP
Если нам нужно удалить один из элементов массива, то для
этого мы должны использовать функцию unset
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
unset($arr[1]);
foreach ($arr as $key => $value) {
echo $value . '<br/>';
}

96.

Перебор элементов массива в PHP
Кроме использования цикла for для вывода всех
элементов массива на экран мы можем использовать
функцию print_r, которая выведет все элементы
массива вместе с их индексами.
<?php
$arr[0] = "PHP"; $arr[1] = "HTML";
$arr[2] = "CSS"; print_r($arr);
?>
Отображение в браузере:
Array ( [0] => PHP [1] => HTML [2] =>
CSS )

97.

Также в PHP присутствует специальный цикл для обработки
массивов - цикл foreach
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
foreach ($arr as $value) {
echo $value, "<br>";
}
?>
Отображение в браузере:
PHP
HTML
CSS

98.

Для вывода индекса элемента нужно использовать второй
вариант синтаксиса цикла foreach
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
foreach ($arr as $key => $value) {
// $key - индекс эл.массива,
// $value - значение эл.массива
echo "[{$key}] => {$value} <br/>";
}
Отображение в браузере:
[0] => PHP
[1] => HTML
[2] => CSS

99.

Сортировка массивов в PHP
Очень часто нужно отсортировать массив по индексу
его элементов, по алфавиту его элементов, по
возрастанию, по убыванию и т. д. В PHP для этого
существуют функции.
Функция - sort, которая сортирует массив по возрастанию значений
его элементов, при этом изменяя индекс после сортировки:
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
sort($arr);
print_r($arr);
Отображение в браузере:
Array ( [0] => CSS [1] => HTML
[2] => PHP )

100.

Функция - rsort, которая сортирует массив по убыванию
значений его элементов, при этом изменяя индекс после
сортировки:
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
rsort($arr);
print_r($arr);
Отображение в браузере:
Array ( [0] => PHP
CSS )
[1] => HTML
[2] =>

101.

Третья функция - ksort, которая сортирует массив по
ключам, сохраняя отношения между ключами и
значениями:
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
ksort($arr);
print_r($arr);
Отображение в браузере:
Array ( [0] => PHP
CSS )
[1] => HTML
[2] =>

102.

Навигация по массивам в PHP
Навигация по массива дает возможно узнать текущий ,
следующий, предыдущий, последний элемента массива.
Текущий элемент массива определяет функция current:
<?php echo "Now is: ", current($arr), "<br>"; ?>
Следующий элемент массива определяет функция next:
<?php echo "Next is: ", next($arr), "<br>"; ?>
Предыдущий элемент массива определяет функция prev:
<?php echo "Previously is: ", prev($arr), "<br>"; ?>
Последний элемент массива определяет функция end:
<?php echo "The end is: ", end($arr), "<br>"; ?>
Для определения первого (возврата указателя) элемента массива
используют функцию reset:
<?php echo "First is: ", reset($arr), "<br>"; ?>

103.

Пример навигации по массивам:
<?php $arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
echo "Тек_элемент: ", current($arr), "<br>";
echo "След_элемент: ", next($arr), "<br>";
echo "Предыдущ_элемент: ", prev($arr), "<br>";
echo "Последний_элемент: ", end($arr), "<br>";
echo "Первый_элемент: ", reset($arr), "<br>";
Отображение в браузере:
Тек_элемент: PHP
След_элемент: HTML
Предыдущ_элемент: PHP
Последний_элемент: CSS
Первый_элемент: PHP

104.

Преобразование строк в массивы и наоборот
PHP умеет преобразовывать данные из строки в массив и
наоборот, для этого в PHP есть функция implode и explode.
implode - формирует строку из массива.
explode - формирует массив из строки.
Использование функции implode:
<?php
$arr[0] = "PHP";
$arr[1] = "HTML";
$arr[2] = "CSS";
$string = implode(", ", $arr);
echo $string;
Отображение в браузере:
PHP, HTML, CSS

105.

Использование функции explode:
<?php
$string = "PHP, HTML, CSS";
$arr = explode(", ", $string);
print_r($arr);
Отображение в браузере:
Array ( [0] => PHP
[2] => CSS )
[1] => HTML

106.

1.
Дан массив с числами. Найдите сумму квадратов
элементов этого массива.
2.
Дан массив с числами. Найдите сумму тех
элементов этого массива, которые больше нуля и
меньше десяти.

107.

1.
Дана строка:
'abcde'
Получите массив букв этой строки.
2.
Дан массив со строками. Оставьте в этом массиве
только те строки, которые начинаются на http://.

108.

1.
Дан некоторый массив, например, вот такой:
[1, 2, 3, 4, 5, 6]
Найдите сумму первой половины элементов этого
массива.
2.
Дан некоторый массив, например, вот такой:
[1, 2, 3, 4, 5, 6]
Поделите сумму первой половины элементов этого
массива на сумму второй половины элементов.

109.

Многомерные
массивы

110.

Многомерные массивы
• Элементы массива могут быть не только строками и числами, но и
массивами. В этом случае у нас получится массив массивов или
многомерный массив. В следующем примере массив $arr состоит из трех
элементов, в свою очередь являющихся массивами:
<?php
$arr = [['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']];
?>
• Перепишем в более понятном виде:
<?php
$arr = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
];
?>

111.

Многомерные массивы
• В зависимости от уровня вложенности массивы могут быть двухмерными массив массивов, трехмерными - массив массивов массивов (ну и так далее
- четырехмерными, пятимерными и тп).
• Приведенный выше массив является двухмерным, так как внутри одного
массива расположены другие подмассивы и уже в этих подмассивах нет
других массивов. Чтобы вывести какой-либо элемент из двухмерного
массива следует писать уже не одну пару квадратных скобок, а две:
<?php
$arr = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
];
echo $arr[0][1]; // выведет 'b'
echo $arr[1][2]; // выведет 'f'
?>

112.

Многомерные массивы
• В зависимости от уровня вложенности массивы могут быть двухмерными массив массивов, трехмерными - массив массивов массивов (ну и так далее
- четырехмерными, пятимерными и тп).
• Приведенный выше массив является двухмерным, так как внутри одного
массива расположены другие подмассивы и уже в этих подмассивах нет
других массивов. Чтобы вывести какой-либо элемент из двухмерного
массива следует писать уже не одну пару квадратных скобок, а две:
<?php
$arr = [
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
];
echo $arr[0][1]; // выведет 'b'
echo $arr[1][2]; // выведет 'f'
?>

113.

Многомерные массивы
• Вот пример трехмерного массива:
<?php
$arr = [
[
['a', 'b'],
['c', 'd'],
],
[
['e', 'f'],
['g', 'h'],
],
[
['i', 'j'],
['k', 'l'],
],
];
echo $arr[0][0][0]; // выведет 'a'
echo $arr[2][1][0]; // выведет 'k'
?>

114.

Многомерные массивы
• Многомерные массивы также могут быть ассоциативными, например, вот
так:
<?php
$arr = [
'user1' => [
'name' => 'name1',
'age' => 31,
],
'user2' => [
'name' => 'name2',
'age' => 32,
],
];
?>
• Давайте с помощью этого массива выведем на экран, к примеру, имя
второго юзера:
<?php
echo $arr['user2']['name']; // выведет 'name2'
?>

115.

Многомерные массивы
• Многомерные массивы не обязательно должны быть такими, как мы
рассмотрели выше. Посмотрите, например, на следующий массив:
<?php
$arr = [
[
'a', 'b', [1, 2, 3], [4, 5],
],
[
'd', ['e', 'f'],
],
];
?>

116.

Работа с ключами в многомерных массивах
• Работа с ключами при переборе многомерных массивов осуществляется
также, как и при переборе одномерных. Пусть для примера дан вот такой
массив:
<?php
$arr = [
'user1' => [
'name' => 'name1',
'age' => 31,
],
'user2' => [
'name' => 'name2',
'age' => 32,
],
];
foreach ($arr as $key1 => $sub) {
foreach ($sub as $key2 => $elem) {
echo $key1 . ' ' . $key2 . ' ' . $elem . '<br>';
}
}
?>

117.

Заполнение многомерных массивов
• Пусть теперь мы хотим в цикле создать какой-нибудь многомерный массив
с числами. Например, вот такой двухмерный массив:
<?php
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
?>
• Решим поставленную задачу, применив два вложенных цикла. Внешний
цикл будет создавать подмассивы, а внутренний - заполнять эти
подмассивы числами:
<?php
$arr = [];
for ($i = 0; $i < 3; $i++) {
for ($j = 0; $j < 3; $j++) {
$arr[$i][$j] = $j + 1; // заполняем подмассив числами
}
}
var_dump($arr); // [[1, 2, 3], [1, 2, 3], [1, 2, 3]]
?>

118.

1.
Дан массив:
[
[2, 1, 4, 3, 5],
[3, 5, 2, 4, 1],
[4, 3, 1, 5, 2],
]
Отсортируйте элементы в каждом подмассиве.
2.
Дан массив:
[
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
Найдите сумму элементов этого массива.

119.

1.
Сформируйте с помощью двух вложенных циклов
следующий массив:
<?php
[[1, 2], [3, 4], [5, 6], [7, 8]]
?>
2.
Сформируйте с помощью двух вложенных циклов
следующий массив:
[[1, 2, 3, 4, 5], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5]]
3.
Дан следующий массив:
$arr = [
'group1' => ['user11', 'user12', 'user13', 'user43'],
'group2' => ['user21', 'user22', 'user23'],
'group3' => ['user31', 'user32', 'user33'],
'group4' => ['user41', 'user42', 'user43'],
'group5' => ['user51', 'user52'],
];
С помощью двух вложенных циклов выведите элементы
этого массива в формате имя группы - имя юзера.

120.

1.
Дан массив:
[
[
[11, 12, 13],
[14, 15, 16],
[17, 17, 19],
],
[
[21, 22, 23],
[24, 25, 26],
[27, 27, 29],
],
[
[31, 32, 33],
[34, 35, 36],
[37, 37, 39],
],
]
Найдите сумму элементов этого массива.

121.

1.
Напишите скрипт поиска в массиве, который
принимает многомерный массив и значение, и
возвращает true, если значение найдено в
массиве, и false в противном случае, массив:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
1.
Напишите скрипт поиска наименьшего элемента в
массиве, который находит наименьший элемент в
многомерном массиве:
[[3, 7, 2], [9, 4, 6], [1, 8, 5]];

122.

Функции

123.

Стандартные функции

124.

Математические функции
1. Функция sqrt находит квадратный корень числа.
2. Функция pow возводит число в заданную степень.
3. Функция round округляет число по правилам математического округления.
4. Функция ceil округляет дробь в большую сторону до целого.
5. Функция floor округляет дробь в меньшую сторону.
6. Функция min находит самое маленькое число из переданных ей
7. Функция max находит самое большое число из переданных ей
8. Функция mt_rand
промежутке.
генерирует
случайное
целое
число
в
заданном
9. Функция abs вычисляет модуль числа, то есть из отрицательного делает
положительное.

125.

1.
Даны переменные $a и $b. Найдите найдите
модуль разности $a и $b. Проверьте работу
скрипта самостоятельно для различных $a и $b.
2.
Найдите квадратный корень из 587. Округлите результат в
большую и меньшую сторону, запишите результаты
округления в ассоциативный массив с ключами 'floor' и
'ceil’.
3.
Найдите корень из суммы квадратов его элементов. Для
решения воспользуйтесь циклом foreach.

126.

Пользовательские
функции

127.

Пользовательские функции
• Давайте рассмотрим синтаксис для создания своей функции.
• Функция создается с помощью команды function. Далее через пробел
следует имя функции и круглые скобки, в которых пишется какой-то код
• Теперь вызовем нашу функцию. Для этого необходимо написать ее имя и
круглые скобки:
<?php
function func() {
echo '!';
}
// Вызываем нашу функцию:
func(); // выведет '!'
?>

128.

Параметры функций
• С помощью параметров мы можем передавать в функцию некоторые
данные.
• Параметры определяются в скобках после названия функции как обычные
переменные, оделенные друг от друга запятой.
• Здесь функция hello определяет один параметр - $name. При наименовании
параметров применяются те же правила, что и для переменных. Также
название параметров начинается со знака доллара $.
<?php
function hello($name)
{
echo "<h2>Hello $name</h2>";
}
hello("Tom");
hello("Bob");
hello("Sam");
?>

129.

Параметры функций
• Подобным образом можно определять функции и с большим количеством
параметров
• Здесь функция displayInfo определяет два параметра, соответственно при
вызове функции нам надо передать в функцию два значения.
• Значения отделяются запятой и передаются параметрам по позиции. Так,
первое значение передается первому параметру, второе значение
передается второму параметру и так далее.
<?php
function displayInfo($name, $age)
{
echo "<div>Имя: $name <br />Возраст: $age</div><hr>";
}
displayInfo("Tom", 36);
displayInfo("Bob", 39);
displayInfo("Sam", 28);
?>

130.

Необязательные параметры
• Выше при определении функции мы были обязаны передать для всех
параметров функции значения.
• Например, если функция определяет два параметра, соответственно нам
надо передать в ее вызов два значения.
• Однако, PHP позволяет сделать параметры необязательными. Такие
параметры имеют значение по умолчанию, которое применяется, если при
вызове функции не передано никакого значения.
<?php
function displayInfo($name, $age)
{
echo "<div>Имя: $name <br />Возраст: $age</div><hr>";
}
displayInfo("Tom", 36);
displayInfo("Bob", 39);
displayInfo("Sam", 28);
?>

131.

Необязательные параметры
• Здесь параметр $age определяется как необязательный. Для этого ему
присваивается начальное значение - число 18. Если функция содержит
обязательные и необязательные параметры, то необязательные параметры
должны определяться в конце
• При первом вызове в функцию передаются два значения: displayInfo("Tom",
36), поэтому параметр $age получит второе значение - число 36.
• Во втором вызове в функцию передается одно значение: displayInfo("Sam"),
поэтому параметр $age будет использовать значение по умолчанию - число
18.
<?php
function displayInfo($name, $age = 18)
{
echo "<div>Имя: $name <br />Возраст: $age</div><hr>";
}
displayInfo("Tom", 36);
displayInfo("Sam");
?>

132.

Именнованные параметры
• Начиная с версии 8.0 в PHP была добавлена поддержка именнованных
параметров.
• Так, до PHP 8.0 при вызове функции значения можно было передать
параметрам только по позиции. Именнованные параметры позволяют
передавать значения параметрам по имени
• При вызове функции сначала указывается название параметра (без символа
$) и через двоеточие указывается значение параметра : age: 23, name: "Bob".
И в этом случае нам необязательно соблюдать позицию параметров.
<?php
function displayInfo($name, $age = 18)
{
echo "<div>Имя: $name <br />Возраст: $age</div><hr>";
}
displayInfo(age: 23, name: "Bob");
displayInfo(name: "Tom", age: 36);
displayInfo(name: "Alice");
?>

133.

Переменное количество параметров
• В PHP функция может принимать переменное количество параметров.
• Для этого у функции определяется один параметр, перед которым
указывается оператор ... (три точки). Такой параметр рассматривается как
массив:
<?php
function sum(...$numbers)
{
$result = 0;
foreach($numbers as $number) {
$result += $number;
}
echo "<p>Сумма: $result</p>";
}
sum(1, 2, 3);
sum(2, 3);
sum(4, 5, 8, 10);
?>

134.

Переменное количество параметров
• Если функция должна принимать и другие параметры, то параметр,
который представляет переменное количество значений, указывается в
конце после остальных параметров.
• Например, определим функцию, которая принимает имя студента и
неопределенное количество его баллов успеваемости и выводит средний
балл:
<?php
function getAverageScore($name, ...$scores)
{
$result = 0.0;
foreach($scores as $score) {
$result += $score;
}
$result = $result / count($scores);
echo "<p>$name: $result</p>";
}
getAverageScore("Tom", 5, 5, 4, 5);
getAverageScore("Bob", 4, 3, 4, 4, 4);
?>

135.

Возвращение значений и оператор return
• Функция может возвращать некоторое значение - число, строку и т.д., то
есть некоторый результат. Для возвращения значения в функции
применяется оператор return, после которого указывается возвращаемое
значение.
• Например, получим из функции сумму двух чисел:
<?php
function add($a, $b)
{
return $a + $b;
}
$result = add(5, 6);
echo $result;
// 11
?>
• Функция add() принимает два параметра и возвращает сумму их значений.
• Поскольку функция возвращает значение, мы его можем присвоить
переменной: $result = add(5, 6);
• Либо использовать напрямую: echo add(4, 8);

136.

Возвращение значений и оператор return
• После того, как выполнится инструкция return - функция закончит свою
работу.
• То есть: после выполнения return больше никакой код не выполнится.
• Это не значит, что в функции должен быть один return. Но выполнится
только один из них.
<?php
function add($a, $b)
{
$sum = $a + $b;
return $sum;
echo "sum = $sum";
}
?>
// завершение функции
// эта строка не будет выполняться

137.

Возвращение значений и оператор return
• В следующем примере в зависимости от значения параметра выполнится
либо первый, либо второй return:
<?php
function func($num) {
if ($num >= 0) {
return '+';
} else {
return '-';
}
}
echo func( 3); // выведет '+'
echo func(-3); // выведет '-'
?>

138.

Советы по созданию функций
1. Имена функций должны быть глаголами.
2. Имя каждой функции должно точно отражать то, что функция делает.
3. Функция должна делать только то, что явно подразумевается её
названием, и не делать другого.
4. Каждая функция должна выполнять только одно действие.
5. Используйте внутри функций вспомогательные функции.
6. Код функций лучше не делать длиннее 10-15 строк.
7. Длинные функции лучше разбивать на ряд вспомогательных.
8. Используйте общепринятые префиксы в именах функций: show, get, set, calc,
create, change, check.
9. Выносите дублирующийся код в функции.

139.

1.
Сделайте функцию, которая параметром
принимает число и выводит на экран куб этого
числа
2.
Сделайте функцию, которая параметром принимает
число и проверяет, положительное это число или
отрицательное. В первом случае пусть функция
выводит на экран текст '+++', а во втором '---’.
3.
Сделайте функцию, которая параметрами принимает
3 числа и выводит на экран сумму этих чисел.

140.

1.
Сделайте функцию, которая параметром
принимает число, а возвращает куб этого числа. С
помощью этой функции найдите куб числа 34 и
запишите его в переменную $res за пределами
функции.
2.
С помощью созданной вами функции найдите сумму
кубов числа 2 и числа 3 и запишите ее в переменную
$res за пределами функции.

141.

1.
Напишите функцию, которая параметром будет
принимать число и делить его на 2 столько раз,
пока результат не станет меньше 10. Пусть
функция возвращает количество итераций, которое
потребовалось для достижения результата.
2.
Сделайте функцию, которая параметром будет
принимать массив с числами, и проверять, что все
элементы в этом массиве являются четными числами.

142.

1.
Сделайте функцию, которая параметром будет
принимать число и проверять, что все цифры это
числа являются нечетными.
2.
Сделайте функцию, которая параметром будет год
и проверять, високосный он или нет.

143.

Формирование строк

144.

Генерация тегов

145.

Генерация тегов
Давайте научимся формировать теги с использованием переменных. Пусть, к
примеру, у нас есть следующая переменная:
<?php
$text = 'aaa';
?>
Выведем текст этой переменной в абзаце:
<?php
$text = 'aaa';
echo "<p>$text</p>";
?>

146.

Генерация тегов с атрибутами
Давайте теперь научимся формировать теги с атрибутами. Пусть для примера мы
хотим сделать ссылку. При этом текст и адрес ссылки будут хранится в
соответствующих переменных:
<?php
$text = 'link';
$href = 'index.html';
?>
Давайте теперь сформируем наш тег путем вставки переменных. Не забывайте про
кавычки!
<?php
echo "<a href='$href'>$text</a>";
?>

147.

Цикл и генерация тегов
Давайте теперь научимся формировать теги в цикле. К примеру, давайте сделаем
пять абзацев, заполнив их числами по возрастанию:
<?php
for ($i = 1; $i <= 5; $i++) {
echo "<p>$i</p>";
}
?>

148.

Цикл и генерация тегов из массивов
Давайте теперь сформируем теги, взяв их тексты из массива:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
echo "<p>$elem</p>";
}
?>

149.

Цикл и генерация тегов и атрибутов
Давайте теперь научимся формировать в цикле теги не только с текстом, но и с
атрибутами. Пусть, к примеру, у нас есть следующий массив с адресами и текстами
ссылок:
<?php
$arr = [
['href'=>'1.html', 'text'=>'link1'],
['href'=>'2.html', 'text'=>'link2'],
['href'=>'3.html', 'text'=>'link3'],
];
?>
Давайте с помощью этого массива сформируем ссылки:
<?php
foreach ($arr as $elem) {
echo "<a href='{$elem['href']}'>{$elem['text']}</a><br>";
}
?>

150.

1.
С помощью цикла сформируйте следующий HTML
код:
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>

151.

152.

153.

154.

• Пусть есть следующий массив:
• Выведите его на страницу в следующем виде

155.

Вставка PHP кода в
HTML

156.

Вставка PHP кода в HTML
Пусть у нас есть некоторый HTML код:
<p>text</p>
Мы можем внутри этого кода делать вставки PHP кода:
<p><?php echo 'text'; ?></p>
<p><?php echo sqrt(4); ?></p>

157.

Короткая команда echo
Существует специальная короткая форма команды echo. Давайте посмотрим как она
выглядит. Пусть у нас есть вывод данных в верстку:
<p><?php echo 'text'; ?></p>
Можно сократить вывод, используя специальный короткий тег PHP:
<p><?= 'text' ?></p>

158.

Вставка PHP переменной в HTML код
Пусть теперь у нас есть некоторый абзац, выше которого определена переменная
PHP
Можем упросить вставку переменной, используя короткий PHP тег:
<?php
$str = 'text';
?>
<p><?= $str ?></p>
English     Русский Правила