😎 » PHP - FAQ » Основы PHP8 » Основи програмування на PHP8
402 0  

Основи програмування на 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).

Можна і без (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
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
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
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
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
for (инициализация; условие_цикла; счетчик)
тело_цикла[/code]
[/code]
[/code]
  1. Инициализирующее выражение выполняется один раз в начале цикла.
  2. Проверяется условие. Если оно истинно, то выполняется тело цикла. Если ложно, то выполнение цикла прерывается.
  3. В конце каждой итерации изменяется счетчик (увеличивается или уменьшается).

Цикл выполняется, до тех пор, пока условие истинно, то есть значение i не станет равным 4:

<?php

for
 ($i=0; $i <= 4; $i++) {
echo $i;
}

// 01234

10. Цикл foreach

Цикл 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, Dog1, 1232. Для обращения к элементу массива используется следующий синтаксис: $имя_массива[индекс_элемента].

Рекомендуется объявлять массив через квадратные скобки, так как эта запись компактнее.

Создадим пустой массив:

<?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;
?>

Залишити свій коментар:

Досвід у веброзробці:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2009
2023