Основи програмування на PHP8
Повний список азів програмування на PHP 8 – основа! дуже коротко про все крім ООП.
<?php include 'vars.php'; ?> виконує вказаний файл
<?php include_once 'vars.php'; ?> //Підключає тільки один раз
<?php require 'vars.php'; ?> У разі відсутності видасть помилку і зупинить виконання скрипту
<?php require_once 'vars.php'; ?> //Підключає тільки один раз
Робота з url:
print basename ( __FILE__); // виведення імені файлу з розширенням
print basename($_SERVER['PHP_SELF'], ".php"); // вивід тільки імені
Вставка куска коду, при умові, в HTML:
<?php if ($ac_grp["edit_seo"] == 1 && $current_url == 'index.php'): ?>
<!-- ☣ Якщо вірно - виведеться інформація -->
<?php else: ?>
<!-- ☣ Ця частина якщо не вірно -->
<?php endif ?>
1. У чому редагують код PHP:
Для зручного набору є редактори коду (IDE).
- PhpStorm (платний);
- Visual Studio Code (безкоштовний);
- Atom (безкоштовно);
- Codelobste
Можна і без (IDE):
2. Объявление переменной
PHP – мова зі слабкою типізацією, тобто перед оголошенням змінної не потрібно задавати її тип. Щоб оголосити змінну, перед її ім'ям ставлять знак долара $
:
$animal = 'Cat';
Тут:
Змінній animal
присвоїли значення Сat
.
Виведемо на екран змінну animal
:
<?php
$animal = 'Cat';
echo $animal; // Cat
Одне значення можна надати кільком змінним:
<?php
$first_animal = $second_animal = $third_animal = 'Cat';
echo "$first_animal"; // Cat
echo "$second_animal"; // Cat
echo "$third_animal"; // Cat
Коментарі
Однострочный комментарий начинается с двух слешей //
или хеш-символа #
, а многострочный заключается в /* */
:
<?php
// однострочный комментарий
# однострочный комментарий
/*
многострочный
комментарий
*/
3. Типы данных
3.1. Строки
Строка – набор символов, заключенный в одиночные ''
или двойные кавычки ""
:
<?php
$first_animal = 'Cat';
$second_animal = "Dog";
Конкатенация строк
Оператор конкатенации точка .
соединяет левый и правый аргументы:
<?php
$first_animal = 'Cat';
$second_animal = 'Dog';
$animals = $first_animal . $second_animal;
echo "$animals"; // CatDog
Оператор присваивания с конкатенацией .=
присоединяет правый аргумент к левому:
<?php
$first_animal = 'Cat';
$second_animal = 'Dog';
$third_animal = 'Giraffe';
$animals = $first_animal;
$animals .= $second_animal;
$animals .= $third_animal;
echo "$animals"; // CatDogGiraffe
Чтобы перенести слово на новую строку воспользуемся символом переноса \n
, который работает только в двойных кавычках:
<?php
$first_animal = "Cat\n";
$second_animal = "Dog\n";
$third_animal = "Giraffe";
$animals = $first_animal;
$animals .= $second_animal;
$animals .= $third_animal;
echo "$animals";
/*
Cat
Dog
Giraffe
*/
3.2. Числа
Целое число (integer) не имеет дробной части:
<?php
$number_one = 5678; // целое положительное число
$number_two = -5678; // целое отрицательное число
Число с плавающей точкой
Число с плавающей точкой имеет дробную часть и задается следующий образом:
<?php
$number_one = 1.5678; // 1.5678 – положительное число с плавающей точкой
$number_two = -1.5678; // -1.5678 – отрицательное число с плавающей точкой
$number_three = 1.5678e0; // 1.5678 – положительное число с плавающей точкой
$number_four = 1.5678e2; // 156.78 – положительное число с плавающей точкой
$number_five = 1.5678E-2; // 0.015678 – положительное число с плавающей точкой
Чтобы узнать тип переменной воспользуемся функцией gettype()
, а для преобразования числа с плавающей точкой в целое число функцией intval()
:
<?php
$number_one = 1.5678; // 1.5678 – положительное число с плавающей точкой
echo gettype($number_one); // double
$number_one = intval($number_one);
echo $number_one; // 1
echo gettype($number_one); // integer
Арифметические операторы
Оператор | Операция |
+ | Сложение |
- | Вычитание |
* | Умножение |
/ | Деление |
% | Деление по модулю |
** | Возведение в степень |
Таблица 1. Арифметические операторы
<?php
echo 2 + 4; // 6
echo 2 / 4; // 0.5
echo 2 * 4; // 8
echo 2 - 4; // -2
echo 2 % 4; // 2
echo 2 ** 4; // 16
Мы можем сложить два числа через запись $number_one = $number_one + $number_two;
или через сокращенную запись $number_one += $number_two;
:
<?php
// полная запись
$number_one = 1;
$number_two = 3;
$number_one = $number_one + $number_two;
echo $number_one; // 4
// сокращенная запись запись
$number_one = 1;
$number_two = 3;
$number_one += $number_two;
echo $number_one; // 4
Операторы сравнения
Чтобы сравнить значения используют операторы сравнения, которые возвращают true
или false
:
<?php
echo 4 > 0; // 1 – true
echo 4 <= 55; // 1 – true
echo 4 != 5; // 1 – true
echo 4 <=> 5; // -1
echo 4 <=> 4; // 0
echo 4 <=> 3; // 1
Если строка не содержит число, то интерпретатор PHP приводит значение строки к 0. Если в строке есть число и оно стоит после буквенных символов, то значение всей строки также приводится к 0. Е сли число стоит перед буквенными символами, то для сравнении берется только число.
<?php
echo 0== 'hello'; // true, так как 0 = 0
echo 0== 'hello3555'; // true, так как 0 = 0
echo 0== '3555hello'; // false, так как 0 не равно 3555
echo 3555== '3555hello'; // true, так как 3555 равно 3555
Оператор | Значение |
$n == $m | True, если $n равно $m |
$n === $m | True, если $n равно $m и имеют одинаковые типы |
$n! = $m | True, если $n не равна $m |
$n <> $m | True, если $n не равна $m |
$n !== $m | True, если отличаются тип или значение переменных |
$n < $m | True, если $n меньше $m |
$n > $m | True, если $n больше $m |
$n <= $m | True, если $n меньше или равна $m |
$n >= $m | True, если $n больше или равна $m |
$n <=> $m | Возвращает -1, если $n меньше $m, 0 в случае равенства и 1, если $n больше $m |
Таблица 2. Операторы сравнения
Порядок операций
Сначала считается выражение в скобках:
<?php
print_r((2
* 4) + 5); // 13
4. Условный оператор if-else
Оператор if
выполняет код, если выполняется условие. В противном случае выполняется код после else, который переводится, как «иначе», «в другом случае».
if (условие) выполнить_код else выполнить_другой_код[/code]
[/code]
[/code]
Напишем несколько условий с оператором if
и if-else
:
<?php
if (2 < 5) {
echo 'true';
}
// true
if (2
> 5) {
echo 'true';
} else
{
echo 'false';
}
// false
для проверки дополнительных условий используется оператор elseif
:
<?php
$number = 15;
if ($number < 3) {
echo 'Число меньше трех.';
} elseif ($number > 4 && $number < 10) {
echo 'Число в промежутке от 4 до 10.';
} else
{
echo 'Число больше 10.';
}
// Число больше 10
Здесь:
&&
– логический оператор И
. В нашем условии проверяемое число должно быть больше четырех и меньше десяти.
Оператор | Значение | Результат |
$n and $m | И | true, если и $n, и $m true |
$n or $m | Или | true, если или $n, или $m true |
$n xor $m | Исключающее Или | true, если $n, или $m true |
! $n | Отрицание | true, если $n не true |
$n && $m | И | true, если и $n, и $m true |
$n || $m | Или | true, если или $n, или $m true |
Таблица 3. Логические операторы
5. Тернарный оператор
Тернарный оператор сокращает запись проверяемого условия и имеет следующий синтаксис:
условие ? выполнить_код_если_истинно : выполнить_код_если_ложно:[/code]
[/code]
[/code]
Проверим, переменная n
больше 10
или нет. Если значение n
больше 10
, уменьшим значение n
на единицу (декремент). В противном случае увеличим на единицу (инкремент).
<?php
$n = 5;
$n > 10
? $n-- : $n++;
echo $n; // 6
6. Переключатель switch
Переключатель switch
проводит нестрогое сравнение ==
значений и передает управление соответствующему оператору case
. Если значение не совпадает со значением из case
, тогда выполняется переход к оператору default
.
switch (переменная) {
case 'значение1':
код
break;
case 'значение2':
код
break;
default:
код
break;
}
[/code]
[/code]
[/code]
Напишем конструкцию из переключателя switch
и двух операторов case
:
<?php
$n = 3;
switch
($n) {
case 1:
echo "Число равно двум.";
break;
case 2:
echo "Число равно пяти.";
break;
default:
echo "Значение по умолчанию.";
break;
}
// Значение по умолчанию.
7. Цикл while
Оператор while
выполняет код до тех пор, пока значение условия не станет ложным.
while (условие) {
// код
}[/code]
[/code]
[/code]
Выведем на экран пять раз слово Hello
.
<?php
$m = 0;
while($m < 4) {
$m++;
echo "Hello\n";
}
/*
Hello
Hello
Hello
Hello
*/
Расшифровка:
while
– обозначение цикла.
$m = 0
– начальное значение переменной m
.
$m < 5
– условие, которое проверяется перед началом цикла.
$m++
– инкрементирование, то есть увеличение переменной на единицу.
echo "Hello\n"
– вывод на экран слово Hello
каждый раз с новой строки \n
.
Другой способ записи с помощью декремента в условии:
<?php
$m = 4;
while ($m--) {
echo "Hello\n";
}
/*
Hello
Hello
Hello
Hello
*/
Здесь:
$m--
– декрементация, то есть уменьшение значения переменной на единицу. В это примере знак декремента --
стоит после переменной, поэтому мы получим четыре итерации (от 4 до 0).
Если поставить оператор декремента перед переменной --$m
, то мы получим три итерации (от 4 до 1):
<?php
$m = 4;
while(--$m) {
echo "Hello\n";
}
/*
Hello
Hello
Hello
*/
8. Цикл do..while
Цикл do..while
выполняется минимум один раз, так как условие выполнения цикла проверяется в конце итерации, а не в начале как в цикле while
.
do {
// код
} while (условие);
[/code]
[/code]
[/code]
Напишем цикл, выводящий на экран четыре раза слово Hello
:
<?php
$a = 0;
do {
echo "Hello\n";
$a++;
} while
($a < 4);
/*
Hello
Hello
Hello
Hello
*/
9. Цикл for
Когда нам известно количество итераций, вместо цикла while
лучше использовать цикл for
.
for (инициализация; условие_цикла; счетчик)
тело_цикла[/code]
[/code]
[/code]
- Инициализирующее выражение выполняется один раз в начале цикла.
- Проверяется условие. Если оно истинно, то выполняется тело цикла. Если ложно, то выполнение цикла прерывается.
- В конце каждой итерации изменяется счетчик (увеличивается или уменьшается).
Цикл выполняется, до тех пор, пока условие истинно, то есть значение i
не станет равным 4:
<?php
for
($i=0; $i <= 4; $i++) {
echo $i;
}
// 01234
10. Цикл foreach
Цикл foreach
последовательно перебирает элементы массива.
foreach (массив as переменная) {
инструкция
}[/code]
[/code]
[/code]
На каждой итерации переменной присваивается значение текущего элемента последовательности. Переберем все элементы массива и умножим каждый элемент на 3:
<?php
$array = [1, 2, 3, 4];
foreach($array as $number) {
$number *= 3;
echo $number;
}
// 36912
11. Массивы
Массивы – упорядоченная коллекция элементов с доступом по индексу или ключу. Индексный массив создается двумя способами:
Через функцию array()
:
<?php
$a = array ('Cat', 'Dog', 123);
echo $a[1]; // Dog
и через квадратные скобки []:
<?php
$a = ['Cat', 'Dog', 123];
echo $a[1]; // Dog
Здесь:
echo $a[1]
– вывести на экран второй элемент массива.
Нумерация массива начинается с 0
. В нашем случаем элементу массива Cat
соответствует порядковый номер 0
, Dog
– 1
, 123
– 2
. Для обращения к элементу массива используется следующий синтаксис: $имя_массива[индекс_элемента]
.
Рекомендуется объявлять массив через квадратные скобки, так как эта запись компактнее.
Создадим пустой массив:
<?php
$a = [];
Добавим в него несколько элементов и выведем на экран его содержимое:
<?php
$array = [];
$array[] = 'Cat';
$array[] = 'Dog';
$array[] = 123;
print_r($array);
/*
Array
(
[0] => Cat
[1] => Dog
[2] => 123
)
*/
Чтобы добавить новый элемент мы использовали запись $имя_массива[] = новый_элемент
. Первый добавленный элемент получает индекс 0
. Индексы следующих элементов увеличиваются на 1
. Можно задать индекс самостоятельно. Для этого в квадратных скобках укажем нужный нам индекс:
<?php
$array = [];
$array[100] = 'Cat';
$array[0] = 'Dog';
$array[33] = 123;
print_r($array[0]); // Dog
При добавлении непронумерованного элемента 5000
, значение его индекса будет на единицу большего максимального значения индекса в массиве – 101
:
<?php
$array = [];
$array[100] = 'Cat';
$array[0] = 'Dog';
$array[33] = 123;
print_r($array);
/*
Array(
[100] => Cat
[0] => Dog
[33] => 123
)
*/
$array[] = 5000;
print_r($array);
/*
Array(
[100] => Cat
[0] => Dog
[33] => 123
[101] => 5000
)
*/
Для удаления элемента из массива воспользуемся функцией unset()
:
<?php
$array = ['Cat', 'Dog', 123];
unset($array[2]);
print_r($array);
/*
Array
(
[0] => Cat
[1] => Dog
)
*/
Здесь:
unset($array[2])
– удаление третьего элемента массива.
В качестве индекса также используют строки:
<?php
$array = [];
$array['animal_one'] = 'Cat';
$array['animal_two'] = 'Dog';
$array['number'] = 123;
print_r($array['animal_two']); // Dog
В таком случае мы получаем что-то напоминающее словари в других языках программирования с ключами и значениями. В PHP такой массив называют ассоциативным.
Ассоциативный массив объявляется через символы =>
:
$имя_словаря = ['ключ1' => 'значение1', 'ключ2' => 'значение2'][/code]
[/code]
[/code]
Создадим ассоциативный массив:
<?php
$array = ['first_key'=> 'Cat', 'second_key'=> 5000];
print_r($array);
/*
Array(
[first_key] => Cat
[second_key] => 5000
)
*/
Здесь:
'first_key'
– ключ.
'Cat'
– значение.
Для поиска ключа по значению используем функцию array_search():
<?php
$array = ['first_key'=> 'Cat', 'second_key'=> 5000];
print_r(array_search('Cat' , $array)); // first_key
Здесь:
array_search('Cat' ,$array)
– поиск ключа, соответствующего значению Cat
в массиве array
.
Чтобы подсчитать количество элементов в массиве воспользуемся функцией count()
:
<?php
$array = ['first_key'=> 'Cat', 'second_key'=> 5000];
print_r(count($array)); // 2
Также можно создать многомерный массив:
<?php
$array = ['animals'=> ['Cat', 'Dog'], 'second_array'=> [5000, 33, ['third_array'=> ['Hello']]]];
print_r($array['animals'][1]); // Dog
print_r($array['second_array'][2]['third_array'][0]); // Hello
'animals' => ['Cat', 'Dog']
– ключ animals
с двумя значениями: Cat
и Dog
.
'second_array' => [5000, 33, ['third_array' => ['Hello']]]
– ключ second_array
с тремя значениями: два числа 5000
, 33
и массив, но уже со своим ключем third_array
и значением Hello
.
12. Функции
Функция – подпрограмма, которая на входе принимает аргументы (бывают функции без входных аргументов), выполняет код и возвращает результат. Функциональное программирование упрощает жизнь программиста, так как не нужно копировать и вставлять фрагменты кода снова и снова. Достаточно обратиться к функции когда нужно и сколько угодно раз.
Существуют встроенные и пользовательские функции. Встроенные функции – print()
, print_r()
и так далее – придумали разработчики. Пользовательские функции программисты пишут самостоятельно.
Как объявить функцию
Синтаксис функции:
function имяФункции(аргументФункции1, аргументФункции2, ...) {
код
return результат
}[/code]
[/code]
[/code]
Здесь:
function
– мы говорим интерпретатору, что отсюда начинается функция.
аргументФункции
– переменные, которые передаются функции для выполнения кода.
имяФункции
– чтобы вызывать функцию, ей нужно присвоить имя.
return
– выдает результат работы функции.
Напишем и вызовем функцию, выводящую на экран фразу Hello, World
.
<?php
function
helloMessage()
{
return print("Hello, World.");
}
helloMessage(); // Hello, World. – вызов функции
Аргументы функций
До этого мы рассматривали функции без аргументов – переменных, которые функция получает извне. Напишем функцию с аргументами, которая считает сумму трех чисел:
<?php
function summation($a, $b, $c)
{
return print($a + $b + $c);
}
summation(1, 2, 3); // 6
summation(100, 74, 8); // 182
heredoc и nowdoc
<?php
$b=<<<HD
Тут спрацьовують змінні
HD;
$s=<<<'ND'
Тут не спрацьовують змінні
ND;
?>