Слайд 2Цель
Основы языка PHP
Темы:
версии
операторы
циклы
типизация
типы данных
переменные

Слайд 3Наш язык PHP
version 7.4 (но была и меньше), так что не забываем

про php.net
Слайд 4Переменные
Начинаются с $ и буквы или _ (не с цифры)
Чувствительны к регистру
Не

использовать зарезервированные переменные(например $argc, $_GET)
Область видимости (global)
Слайд 5Типы данных
Скалярные:
boolean
integer
float
string
Смешанные:
array
object
callable
iterable(с php 7.1)
Специальные:
resource
NULL
псевдотипы:
mixed
number
array|object
void

Слайд 6IF… else … elseif
Условные конструкции позволяют направлять работу программы в зависимости от

условия по одному из возможных путей. И одной из таких конструкций в языке PHP является конструкция if..else
$a = 4;
if($a > 0){
echo "Переменная a больше нуля";
}
else{
echo "Переменная a меньше нуля";
}
echo "
конец выполнения программы";
?>
Слайд 7Операторы
Операторы сравнения: ==, ===, !=, !==, >, <, >=, <=, <> ,

< = >
Логические операторы: !, &&, ||, and , or
Приоритет оператора https://www.php.net/manual/ru/language.operators.precedence.php
Вот потому важно использовать регламент написания PHP кода
Слайд 8Массивы
Ранее мы рассмотрели, как в переменные можно сохранить одиночное значение, например, одно

число или одну строку. Но кроме того, мы можем сохранить в переменную набор значений. И для этого используются массивы.
$numbers = [1, 2, 3, 4];
$numbers = array(1, 2, 3, 4);
Слайд 9Ассоциативные массивы
Ассоциативные массивы представляют подвид массивов, в которых, в отличие от обычных

массивов, в качестве ключа применяются строки.
$words = array("red" => "красный", "blue" => "синий", "green" => "зеленый");
$words = ["red" => "красный", "blue" => "синий", "green" => "зеленый"];
Слайд 10Глобальные массивы
$GLOBALS Массив содержит ссылки на все переменные, объявленные в данном скрипте. Это

ассоциативный массив, в котором имена переменных являются ключами.
$_SERVER Массив содержит все данные о настройках среды выполнения скрипта и параметры сервера.
$_GET Список переменных, переданных скрипту методом GET, т.е. через параметры URL-запроса.
$_POST Список переменных, переданных скрипту методом POST.
$_COOKIE Массив содержит все cookies, которые сервер установил на стороне пользователя.
$_FILES Содержит список файлов, загруженных на сервер из формы. Более детально мы рассмотрим этот массив в уроке, посвящённом загрузке файлов на сервер.
$_REQUEST Этот массив объединяет массивы $GET, $POST и $COOKIE. очень часто бывает удобен при обработке пользовательских запросов, но применять его для защищённой обработки данных не стоит.
$_SESSION Массив содержит все переменные сессии текущего пользователя.
Слайд 11Циклы
for
foreach
while
do … while
Помним:
break - останавливает,
continue - пропускает.

Слайд 12for
$cntArr = count($data);
for ($i=0; $i<$cntArr; $i++) {
//полезный код
}
for(;;){}

Слайд 13foreach
//обычное использование
foreach ($items as $rowItem) {
//полезное вычисление
}
foreach ($items as $objectId =>

&$rowItem) {
//полезное вычисление
//можно делать так
$items[$objectId] = $rowItem;
}
unset($rowItem);
Слайд 14while
$count = 0;
while ($data = $oClient->pop() && $count < 5) {
$pack[] =

$data;
$count++;
if (sizeof($pack) >= $limit) {
break;
}
}
while(true) {}
Слайд 15do … while
do {
curl_multi_exec($mh, $running);
//код отправки
} while($running > 0);

Слайд 16Функции
Функции представляют собой блок инструкций, которые многократно можно вызывать в различных частях

программы. Функции позволяют разделять программу на меньшие функциональные части.
function имя_функции([параметр [, ...]])
{
// Инструкции
}
Слайд 17Параметры функции
С помощью параметров мы можем передавать в функцию некоторые данные. Параметры

определяются в скобках после названия функции как обычные переменные, отделенные друг от друга запятой.
function hello($name)
{
echo "
Hello $name
";
}
hello("Tom");
Слайд 18Задание
Создать ассоциативный массив товаров где ключом будем артикул товара, а значением его

цена.
Вывести содержимое массив списком на странице.
Создать функцию getProductDiscont() которая с качестве аргумента принимает артикул товара и возвращает десять процентов от цены товара