Обучение php с нуля самостоятельно пошаговая инструкция

PHP (от англ. препроцессор гипертекста) – язык программирования общего назначения, широко используемый в веб-разработке. Сценарии PHP можно внедрять непосредственно в код HTML. В этой статье мы пройдемся по основам программирования на PHP: синтаксису, объявлению переменных, массивам, условным операторам, циклам и функциям. Также запустим двумя способами веб-сервер на локальной машине и соберем страничку из нескольких файлов PHP и фреймворка Bootstrap. В конце статьи приведем список литературы и бесплатные курсы по PHP для новичков.

Редакторы кода

Для удобного кодинга нам понадобится редактор кода (IDE). Популярные:

  • PhpStorm (платный, пробная версия на 30 дней);
  • Atom (бесплатно);
  • Visual Studio Code (бесплатно);
  • Sublime Text (бесплатно).

Как запустить PHP в Atom

Устанавливать PHP на компьютер и запускать веб-сервер мы будем в конце статьи в разделе «Собираем HTML-страницу». А пока для запуска PHP-сценариев достаточно добавить плагин Script в редакторе Atom.

Установка IDE

Как установить Atom в Ubuntu и Windows читайте в нашем самоучителе по Python.

Чтобы запустить PHP-сценарий в Atom перейдем в закладку Packages ScriptRun Script, либо нажмем на клавиши Ctrl + Shift + B (рис. 1).

Рис. 1. Запуск php-скрипта в редакторе Atom

Рис. 1. Запуск php-скрипта в редакторе Atom

1. Синтаксис

Код в PHP заключается в открывающий <?php и закрывающий ?> теги. Согласно стандарту кодирования PSR-12, закрывающий тег должен быть опущен в файлах, содержащих только код PHP. В конце строки ставят разделитель строк – точку с запятой ;. Если забыть поставить разделитель, то следующая строка кода соединится с предыдущей и интерпретатор PHP выдаст ошибку.

Выведем на экран строку Hello World (заключена в кавычки) с помощью команды echo:

        <?php
echo 'Hello, World.'; // Hello, World.
    

через функцию print:

        <?php
print 'Hello, World.'; // Hello, World.
    

через функцию printf (выводит отформатированную строку):

        <?php
printf('Hello, World.'); // Hello, World.
    

или через функцию print_r(), выводящую информацию в удобочитаемом виде:

        <?php
print_r('Hello, World.'); // Hello, World.
    

Чтобы перенести строку используем символ n, который работает только в двойных кавычках:

        <?php
print_r("Hello, World.nHello, Coder.");

/*
Hello, World.
Hello, Coder.
*/
    

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 = "Catn";
$second_animal = "Dogn";
$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

Рис. 2. Условный оператор if в PHP

Рис. 2. Условный оператор if в PHP

Оператор if выполняет код, если выполняется условие. В противном случае выполняется код после else, который переводится, как «иначе», «в другом случае».

Синтаксис оператора if-else
        if (условие) выполнить_код else выполнить_другой_код
    

Напишем несколько условий с оператором 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. Тернарный оператор

Тернарный оператор сокращает запись проверяемого условия и имеет следующий синтаксис:

        условие ? выполнить_код_если_истинно : выполнить_код_если_ложно:
    

Проверим, переменная 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;
}

    

Напишем конструкцию из переключателя switch и двух
операторов case:

        <?php
$n = 3;

switch ($n) {
    case 1:
        echo "Число равно двум.";
        break;
    case 2:
        echo "Число равно пяти.";
        break;
    default:
        echo "Значение по умолчанию.";
        break;
}
// Значение по умолчанию.
    

7. Цикл while

Рис. 3. Цикл while в PHP

Рис. 3. Цикл while в PHP

Оператор while выполняет код до тех пор, пока значение условия не станет ложным.

Синтаксис цикла while
        while (условие) {
    // код
}
    

Выведем на экран пять раз слово Hello.

        <?php
$m = 0;

while ($m < 4) {
    $m++;
    echo "Hellon";
}

/*
Hello
Hello
Hello
Hello
*/
    

Расшифровка:

while – обозначение цикла.

$m = 0 – начальное значение переменной m.

$m < 5 – условие, которое проверяется перед началом цикла.

$m++ – инкрементирование, то есть увеличение переменной на единицу.

echo "Hellon" – вывод на экран слово Hello каждый раз с новой строки n.

Другой способ записи с помощью декремента в условии:

        <?php
$m = 4;

while ($m--) {
    echo "Hellon";
}

/*
Hello
Hello
Hello
Hello
*/
    

Здесь:

$m-- – декрементация, то есть уменьшение значения переменной на единицу. В это примере знак декремента -- стоит после переменной, поэтому мы получим четыре итерации (от 4 до 0).

Если поставить оператор декремента перед переменной --$m, то мы получим три итерации (от 4 до 1):

        <?php
$m = 4;

while (--$m) {
    echo "Hellon";
}

/*
Hello
Hello
Hello
*/
    

8. Цикл do..while

Цикл do..while выполняется минимум один раз, так как условие выполнения цикла проверяется в конце итерации, а не в начале как в цикле while.

Синтаксис цикла do..while
        do {
    // код
} while (условие);

    

Напишем цикл, выводящий на экран четыре раза слово Hello:

        <?php
$a = 0;
do {
    echo "Hellon";
    $a++;
} while ($a < 4);

/*
Hello
Hello
Hello
Hello
*/
    

9. Цикл for

Рис. 4. Цикл for в PHP

Рис. 4. Цикл for в PHP

Когда нам известно количество итераций, вместо цикла while лучше использовать цикл for.

Синтаксис цикла for
        for (инициализация; условие_цикла; счетчик)
    тело_цикла
    
  1. Инициализирующее выражение выполняется один раз в начале цикла.
  2. Проверяется условие. Если оно истинно, то выполняется тело цикла. Если ложно, то выполнение цикла прерывается.
  3. В конце каждой итерации изменяется счетчик (увеличивается или уменьшается).

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

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

// 01234
    

10. Цикл foreach

Цикл foreach последовательно перебирает элементы массива.

Синтаксис цикла foreach
        foreach (массив as переменная) {
  инструкция
}
    

На каждой итерации переменной присваивается значение текущего элемента последовательности. Переберем все элементы массива и умножим каждый элемент на 3:

        <?php
$array = [1, 2, 3, 4];
foreach ($array as $number) {
    $number *= 3;
    echo $number;
}

// 36912
    

11. Массивы

Рис. 5. Индексы элементов в массиве PHP

Рис. 5. Индексы элементов в массиве PHP

Массивы – упорядоченная коллекция элементов с доступом по индексу или ключу. Индексный массив создается двумя способами:

Через функцию 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']
    

Создадим ассоциативный массив:

        <?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 результат
}
    

Здесь:

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

    

Здесь:

$a, $b, $c – аргументы функции.

13. Собираем HTML-страницу

Чтобы просмотреть HTML-страницу, собранную из нескольких PHP-файлов, установим и запустим веб-сервер, разместим файлы в определенной папке и обратимся к файлу через браузер.

Запуск веб-сервера

Веб-сервер можно запустить несколькими способами:

  1. Через встроенный в PHP веб-сервер.
  2. Через сторонние инструменты: XAMPP, Open Server, Winginx.

Встроенный в PHP веб-сервер

Инструкция для Windows:

  1. Скачаем с официального сайта PHP и распакуем содержимое архива на диск.
  2. Откроем консоль и перейдем в папку с PHP, используя команду cd, например, cd php7.
  3. Создадим папку page командной mkdir page. В ней будут храниться файлы нашей странички.
  4. Введем в консоли php -S localhost:8000 -t P:php7page. Флаг -S означает, что мы запускаем сервер по адресу localhost на 8000 порту. Флаг -t указывает путь к корневой директории.

Инструкция для Ubuntu:

  1. Установим PHP командой sudo apt install php libapache2-mod-php php-mysql.
  2. Создадим в домашней директории папку page.
  3. Введем в консоли php -S localhost:8000 -t /home/USERNAME/page.

Чтобы проверить запущен ли сервер, перейдем по адресу http://localhost:8000/:

Рис. 6. Запуск встроенного в PHP веб-сервера

Рис. 6. Запуск встроенного в PHP веб-сервера

Если мы получили ошибку 404, значит сервер запущен.

XAMPP

Скачаем и установим XAMPP. В папке C:xampphtdocs создадим папку нашей странички page. Запустим веб-сервер Apache, кликнув по кнопке Start. Узнаем версию PHP, введя в консоли (Shell) команду php -v.

Рис. 7. Запуск сервера с помощью XAMPP

Рис. 7. Запуск сервера с помощью XAMPP

Проверим, запущен ли сервер, перейдя по адресу http://localhost/. Если появилось приветственное сообщение, значит сервер запущен.

Рис. 8. Запуск сервера с помощью XAMPP на Windows

Рис. 8. Запуск сервера с помощью XAMPP на Windows

14. Собираем страничку

Теперь создадим несколько PHP-файлов, из которых соберем страничку. Перейдем в папку page и создадим четыре файла: index.php, header.php, body.php, footer.php.

Структура простого HTML-документа выглядит следующим образом:

        <!DOCTYPE html>
<html>
 <head>
  <title>First page</title>
 </head> 
 <body>
  <header>

  </header>

  <footer>

  </footer>
 </body> 
</html>

    

Воспользуемся фреймворком Bootstrap, чтобы ускорить создание странички. Скачивать ничего не нужно, просто вставим ссылку на Bootstrap в тег <head>:

        <!DOCTYPE html>
<html>
 <head>
  <title>First page</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
 </head> 
 <body>
  <header>
  </header>
  <footer>
  </footer>
 </body> 
</html>

    

Откроем файл header.php и вставим в него следующий код:

        <!DOCTYPE html>
<html>

<head>
    <title>First page</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
</head>

<body>
    <header>
        <ul class="nav justify-content-center">
            <li class="nav-item">
                <a class="nav-link active" aria-current="page" href="#">Active</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Ссылка</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Ссылка</a>
            </li>
        </ul>
    </header>
    

в файл body.php:

            <div class="card-group">
        <div class="card">
            <img src="https://upload.wikimedia.org/wikipedia/commons/2/27/PHP-logo.svg" class="card-img-top" alt="...">
            <div class="card-body">
                <h5 class="card-title">Что такое PHP?</h5>
                <p class="card-text">PHP — скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. </p>
                <p class="card-text"><small class="text-muted">Добавлено 5 минут назад</small></p>
            </div>
        </div>
        <div class="card">
            <img src="https://upload.wikimedia.org/wikipedia/commons/2/27/PHP-logo.svg" class="card-img-top" alt="...">
            <div class="card-body">
                <h5 class="card-title">Что такое PHP?</h5>
                <p class="card-text">PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста»; первоначально PHP/FI (Personal Home Page / Form Interpreter), а позже названный Personal Home Page Tools</p>
                <p class="card-text"><small class="text-muted">Добавлено 8 минут назад</small></p>
            </div>
        </div>
        <div class="card">
            <img src="https://upload.wikimedia.org/wikipedia/commons/2/27/PHP-logo.svg" class="card-img-top" alt="...">
            <div class="card-body">
                <h5 class="card-title">Что такое PHP?</h5>
                <p class="card-text">В области веб-программирования, в частности серверной части, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET).</p>
                <p class="card-text"><small class="text-muted">Добавлено 10 минут назад</small></p>
            </div>
        </div>
    </div>

    

в файл footer.php:

            <footer>
        <nav aria-label="Page navigation example">
            <ul class="pagination">
                <li class="page-item"><a class="page-link" href="#">Назад</a></li>
                <li class="page-item"><a class="page-link" href="#">1</a></li>
                <li class="page-item"><a class="page-link" href="#">2</a></li>
                <li class="page-item"><a class="page-link" href="#">3</a></li>
                <li class="page-item"><a class="page-link" href="#">Вперед</a></li>
            </ul>
        </nav>
    </footer>
    </body>

</html>

    

в файл index.php:

        <?php

include 'header.php';
include 'body.php' ;
include 'footer.php';

    

Здесь:

include – инструкция, которая подключает к PHP-сценарию другие сценарии. Также сценарии подключают с помощью инструкций require, include_once и require_once. Они отличаются по реакции на отсутствие подключаемого файла.

Откроем страницу, перейдя на http://localhost:8000/ или http://localhost/page/. Должно получиться как на рис. 9.

Рис. 9. HTML-страница, собранная из php-файлов

Рис. 9. HTML-страница, собранная из php-файлов

***

Литература

  • Робин Никсон. Создаем динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5;
  • Котеров, Симдянов. PHP 7;
  • Веллинг, Томсон. Разработка веб-приложений с помощью PHP и MySQL;

Остальные книги указаны в нашей статье ТОП-10 книг по PHP: от новичка до профессионала.

Шпаргалки

  • Шпаргалка по PHP
  • Основы PHP

YouTube-каналы и курсы

Бесплатные курсы на русском языке:

  • Основы php с нуля. Новейший курс 2020 – двадцать четыре урока от основ до регулярных выражений и функций;
  • Базовый курс по PHP 7 – узнаете про базовые понятия, GET-параметры, методы, функции и ООП;
  • Учим PHP за 1 Час – основы за полтора часа;
  • Изучение PHP для начинающих – научитесь работать с массивами, подключать файлы, обрабатывать формы, работать с куки и базой данных MySQL;
  • Уроки PHP 7 – много уроков по ООП;
  • PHP для начинающих – курс на Stepik для начинающих разработчиков, не требует специальных знаний;
  • PHP – первое знакомство – азы программирования на PHP (Stepik).
  • подписывайтесь на тег PHP, чтобы получать уведомления о новых статьях;
  • телеграм-канал «Библиотека пхпшника»;
  • книги по программированию в нашем телеграм-канале «Книги для программистов».

***

Итог

  • вы познакомились с синтаксисом PHP и типами данных;
  • узнали, как работают условные операторы и циклы;
  • запустили веб-сервер в Ubuntu и Windows;
  • собрали страничку HTML из файлов PHP.

Основы

Массивы

Условия

Циклы

Многомерность

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

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

Рекурсия

Регулярные выражения

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

Формы

Сессии

Cookies

Файловая система

Базы данных

Организация БД

Практика БД

Работа с HTTP

Редиректы

Аутентификация

Движок сайта

Change language:

Submit a Pull Request
Report a Bug

Простой учебник

Содержание

  • Что мне потребуется?
  • Первая страница на PHP
  • Делаем что-нибудь полезное
  • Работа с формами
  • Что дальше?

В этом кратком и простом учебнике мы бы хотели показать самые
основы PHP. Этот текст включает в себя только создание динамических
Web-страниц с помощью PHP, однако реальная область применения PHP
гораздо шире. В разделе «Что может
PHP» приведена дополнительная информация.

Web-страницы, созданные с использованием PHP, обрабатываются как обычные
HTML-страницы. Их можно создавать и изменять точно таким же образом,
как и обычные страницы на HTML.

add a note

User Contributed Notes

There are no user contributed notes for this page.

Восстановление доступа

Забыли пароль или потеряли доступ к профилю? Введите привязанную к профилю эл. почту, мы отправим вам письмо со ссылкой для восстановления.

Эл. почта
*

Забыли привязать эл. почту к профилю? Напишите нам, мы поможем.

#Руководства

  • 3 ноя 2022

  • 5

Народная мудрость гласит: что написано на PHP, то не вырубишь топором. Именно поэтому язык остаётся одним из самых популярных в веб-разработке.

Иллюстрация: Оля Ежак для Skillbox Media

Виталий Чесноков

Выпускник факультета автоматизации и информатики МГГУ, исполнительный директор компании QSOFT.

Сегодня мы познакомимся с простым, но имеющим огромные возможности языком программирования — PHP. Узнаем, чем он привлекателен, на какую зарплату могут рассчитывать начинающие PHP-разработчики и как развиваться в веб-разработке. Для начинающих — на примерах покажем, как с нуля создать простой скрипт.

  • Что пишут на языке программирования PHP
  • Почему PHP востребован и популярен в веб-разработке
  • Сколько зарабатывают начинающие и опытные разработчики
  • Что нужно знать и как новичку развиваться в профессии
  • Какие книги почитать для самостоятельного изучения PHP
  • Как написать простой скрипт и сайт

Язык программирования PHP применяют преимущественно в разработке сайтов и веб-приложений, а именно в бэкенде.

Все сайты, которые мы видим в интернете, состоят из двух частей: фронтенда и бэкенда. То, что видит пользователь, — анимация, слайдеры, выпадающие меню и прочее, — это фронтенд. Дизайнеры рисуют макет сайта, а разработчики превращают его в код на HTML, CSS и JavaScript.

На уровне бэкенда создаётся сама платформа, которая связывает сайт с внутренними серверными системами, обрабатывает пользовательские запросы, общается с базой данных и передаёт результаты во фронтенд. Именно для создания бэкенда и используется язык PHP.

Языку PHP уже более 20 лет. Он был разработан датчанином Расмусом Лердорфом в 1994 году как надстройка, которая показывала количество посещений его персональной странички. Тогда он назвал её просто — Personal Home Page.

Язык непрерывно эволюционирует. В 2004 году вышел PHP 5, который добился большой популярности у веб-разработчиков благодаря хорошей реализации ООП. В декабре 2015 года вышла седьмая версия, которая позволила создавать более быстрые программы. PHP 8 появился в ноябре 2020 года, а на 24 ноября 2022 года намечен выход версии 8.2.

По данным W3Techs, доля веб-сайтов с бэкендом на PHP составляет около 80%. В первую очередь это связано с тем, что на нём написаны популярные CMS WordPress и Drupal. Кроме того, на PHP написаны «Фейсбук»*, «ВКонтакте», поисковая система Yahoo, «Википедия», немалая часть сервисов Google и отечественная CMS «1С-Битрикс».

Крупнейшие мировые компании, которые используют язык PHP
Изображение: Skillbox Media

PHP часто учат с нуля, так как у него очень низкий порог входа. Уже через месяц обучения вы будете писать небольшие сайты. А в дальнейшем, развив свои навыки, сможете работать над высоконагруженными системами для крупных компаний.

Несмотря на то что PHP уже десять лет пророчат скорую смерть, он остаётся самым востребованным языком программирования. Доля вакансий, в которых требуется знание PHP, составляет 24,6%. Примерно столько же занимает Java с 24,1%. А третий по популярности С# значительно отстаёт — 9,8%.

PHP, Java и C# — самые популярные у работодателей языки
Изображение: Skillbox Media

Рейтинг популярности языков программирования составлен на основе вакансий с русскоязычных карьерных сервисов. Скорее всего, в ближайшие пять лет соотношение не изменится.

Согласно HeadHunter, зарплатный максимум PHP-программиста в России составляет 10 тысяч долларов. Если разделить зарплаты по уровням профессионального развития программиста, то цифры такие:

  • Junior Developer — от 40 тысяч рублей в месяц.Только входит в профессию, умеет работать с легаси-кодом и писать простые скрипты, имеет коммерческий опыт программирования порядка 2–3 месяцев.
  • Middle Developer — от 100 тысяч рублей в месяц.Может самостоятельно справиться с 90% поставленных задач и имеет опыт программирования от шести месяцев до года.
  • Senior Developer — от 150 тысяч рублей в месяц.Может решить любую задачу на PHP, спроектировать решение, архитектуру, подобрать код и обучить junior- или middle-программиста выполнять эти задачи.

В 2022 году зарплаты PHP-разработчиков в России выросли сильнее, чем зарплаты программистов на всех других языках. Джунам чаще стали предлагать от 60 тысяч рублей в месяц, а сеньорам — от 400 тысяч.

Рассмотрим технологии, которые должен освоить начинающий бэкенд-разработчик.

  • HTML и CSS — языки разметки страницы. Чаще всех их используют фронтенд-разработчики, но вам нужно знать и понимать основы, так как придётся работать с готовой разметкой.
  • JavaScript — код, выполняемый на стороне клиента (браузера). Он задаёт механику работы страницы. Необходимо уметь читать его и понимать, для чего нужен тот или иной его кусок.
  • PHP — ядро сайта, скриптовый язык, работающий на уровне сервера и взаимодействующий с серверными структурами, на которых строится веб-проект.
  • SQL — язык структурированных запросов, применяемый для управления базами данных, например, в СУБД MySQL.
  • Linux — да, именно Linux. Windows не предназначена для использования в качестве операционной системы для сервера, хотя PHP может работать как в Windows, так и в Linux. В рамках обучения не обязательно использовать именно Linux, но важно знать, что в реальных проектах серверы обычно работают под этой операционной системой.

Вот самые популярные и проверенные временем книги, в которых излагаются основы языка, работы с разметкой, принципы взаимодействия бэкенда и фронтенда и наиболее важные концепции веб-программирования:

  • «PHP 7. В подлиннике», Дмитрий Котеров, Игорь Симдянов.
  • «Изучаем PHP 7. Руководство по созданию интерактивных сайтов», Дэвид Скляр.
  • «Создаём динамические веб-сайты с помощью PHP, MySQL, JavaScript, CSS и HTML5», Робин Никсон.
  • «PHP. Объекты, шаблоны и методики программирования», Мэтт Зандстра.
  • «Разработка веб-приложений с помощью PHP и MySQL», Люк Веллинг, Лора Томсон.

Чтобы освоить профессию, недостаточно знать язык программирования — нужно научиться мыслить как программист и постоянно расширять кругозор. В этом вам помогут 16 лучших книг для программиста.

Напишем небольшой сайт для поиска информации о количестве продуктов на складе. Мы не будем подробно вникать в синтаксис языка и в назначение операторов, наша задача — увидеть, как PHP взаимодействует с HTML. Но сначала установим компилятор и сервер, который будет обрабатывать запросы пользователей.

Ниже приведены инструкции для операционных систем Windows, Linux и macOS.

Скачать PHP на Windows можно с официального сайта, предварительно выбрав подходящую версию языка и операционную систему. Мы установим PHP 8.1 для 64-битной системы, для других версий процедура будет такой же.

Выбираем нужную версию PHP и вариант VS16×64 Thread Safe:

Скачиваем последнюю версию PHP с официального сайта языка
Скриншот: Skillbox Media

Теперь нужно распаковать архив в любое место на жёстком диске и запомнить путь до этой папки. Мы распакуем в папку C:Program Filesphp-8.1.0:

Распаковываем архив в любом удобном месте на жёстком диске
Скриншот: Skillbox Media

Дальше нужно указать системе, что мы установили PHP. Нажимаем правой кнопкой на «Этот компьютер» → «Свойства» → «Дополнительные параметры системы» → «Переменные среды»:

Скриншот: Skillbox Media

Выберите сверху и снизу Path → нажмите «Изменить». У вас откроется окно, в котором нужно нажать «Создать» в меню справа, а затем задать путь к папке PHP (в нашем случае это C:Program Filesphp-8.1.0). Затем нажмите «ОК»:

Сюда вписываем путь до папки, где находится PHP
Скриншот: Skillbox Media

PHP установлен. Чтобы это проверить, открываем командную строку и пишем там команду php -v:

Если PHP установлен правильно, выведется примерно такое
Скриншот: Skillbox Media

А чтобы запустить PHP-код, нужно создать текстовый файл с расширением .php и написать там какой-нибудь код. Например, такой:

Мы создали файл с расширением .php и написали в нём код, который выводит «Hello world!»
Скриншот: Skillbox Media

Теперь заходим в папку с этим файлом, нажимаем правую кнопку мыши и выбираем пункт «Открыть окно PowerShell здесь».

Открываем PowerShell, чтобы запустить PHP-код
Скриншот: Skillbox Media

В открывшемся окне пишем команду php test.php — в консоли должна вывестись наша строка:

Если строка вывелась, значит, PHP работает
Скриншот: Skillbox Media

Перед установкой обновите систему, чтобы во время установки не возникло ошибок:

sudo apt update

Затем установите PHP:

sudo apt install php

Но это ещё не всё. Мы установили последнюю версию языка, однако, чтобы воспользоваться её функциями, нужно установить дополнительный репозиторий.

Сначала установим предварительные условия:

sudo apt install software-properties-common -y

А потом и сам репозиторий:

sudo add-apt-repository ppa:ondrej/php

И ещё раз обновим локальные пакеты, чтобы можно было использовать добавленный репозиторий:

sudo apt update

Скачать PHP с официального сайта на макбук не получится. Придётся установить дополнительные программы. Первая из них — Homebrew. Это менеджер пакетов, который позволяет установить любые утилиты для программистов.

Заходим на официальный сайт и копируем команду, которую нам предлагают:

Скриншот: Skillbox Media

Открываем терминал: меню приложений → папка «Прочие» → «Терминал». Далее вводим команду:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Дальше в терминале вы увидите следующие инструкции по установке. Нужно будет добавить brew в путь системы. Найдите вот эту строчку и скопируйте все команды оттуда:

Затем вставьте их снова в терминал, и установка brew будет окончена.

Наконец, устанавливаем сам PHP с помощью команды brew install php:

Скриншот: Skillbox Media

Чтобы проверить корректность установки, введите в терминале команду php -v:

Скриншот: Skillbox Media

В консоли должна вывестись версия языка, который вы только что установили.

Писать код будем в текстовом редакторе Sublime Text 3, его можно скачать бесплатно на официальном сайте. Создадим папку Server в любом месте на жёстком диске и добавим в неё три файла: index.html, handler.php и styles.css.

Код нашей главной страницы index.html будет иметь следующий вид:

<!DOCTYPE html>
<html lang="en">
<head>
     <meta charset="UTF-8">
     <title>Example</title>
</head>
<body>
     <form action="handler.php" method="get">
         <label>
            Продукт
            <input type="text" name="searchText">
         </label>
         <input type="submit" name="searchSubmit" value="Поиск">
     </form>
</body>
</html>

Это код формы с текстовым полем и кнопкой. Атрибут action тега <form> указывает на имя и путь файла-скрипта, который будет обрабатывать введённые данные, — в нашем случае это файл handler.php. Атрибут method указывает на способ передачи данных — get. Эти методы прописаны в протоколе HTTP, по которому сайты общаются с браузером.

Напишем код для скрипта handler.php.

<?php
   echo "<link rel='stylesheet' href='styles.css'>";
   $fruits = array('Яблоки' => '30кг', 'Груши' => '50кг', 'Бананы' => '20кг');
   $vegetables = array('Картошка' => '100кг', 'Огурцы' => '80кг', 'Помидоры' => '50кг');
   $berries = array('Вишня' => '20кг', 'Виноград' => '30кг', 'Малина' => '50кг');

   $searchText = mb_strtolower($_GET['searchText']);

   if(isset($_GET['searchSubmit'])){
       if($searchText == 'фрукты')
           $products = $fruits;
       elseif ($searchText == 'овощи')
           $products = $vegetables;
       elseif ($searchText == 'ягоды')
           $products = $berries;

       echo '<table>
              <thead>
                 <td>Продукт</td>
                 <td>Количество</td>
              </thead>';
       foreach ((array)$products as $key => $value) {
           echo '<tr>
                   <td>'. $key .'</td>
                   <td>'. $value .'</td>
               </tr>';
       }
       echo '<table>';
    }
?>

Что тут происходит:

  • В строке 1 с помощью оператора echo вставляем тег link в HTML-код страницы.
  • В строках 3–5 создаётся три массива, которые содержат информацию о фруктах, овощах и ягодах. Подобного рода данные должны храниться в базе данных и затем из неё вытягиваться, но для примера мы ввели их вручную.
  • В строке 7 создаётся переменная $searchText, которая содержит в себе введённое в текстовое поле значение. Это значение берётся из массива $_GET, в квадратных скобках которого указывается имя текстового поля, которое мы задали в файле index.html. Этот массив инициализируется при отправке формы.
  • В строках 9–15 проверяется, была ли нажата кнопка отправки формы searchSubmit. Затем проверяется введённое значение и, в зависимости от того, какой вид продукта ввёл пользователь, в переменную $products записывается массив с данными о продуктах.
  • В строках 17–28 массив выводится на экран в виде таблицы. Как видите, PHP отличает HTML-теги от обычных строк и выводит в окно браузера с помощью функции echo HTML-таблицу.
  • В строке 22 наш массив products перебирается с помощью оператора цикла foreach.

Чтобы придать таблице красивый вид, создадим небольшой файл стилей styles.css. Он подключается в файле handler.php во второй строчке кода.

Код styles.css такой:

table {
    background: rgb(182, 182, 182);
    border: 2px solid rgb(0, 0, 0);
    border-collapse: collapse;
}

thead {
    background: rgb(11, 135, 28);
    color: white;
}

td {
    padding-right: 10px;
}

Всё готово. Теперь нужно запустить веб-сервер. Для этого в терминале перейдём в папку с нашими файлами. Введите команду cd и укажите полный путь до вашей папки с файлами — например, C:Program FilesServer. У нас на macOS будет такая команда:

Скриншот: Skillbox Media

Здесь вводим в консоли команду php -S 127.0.0.1:8000:

Скриншот: Skillbox Media

Сервер запустился. Теперь открываем браузер и переходим на сайт: http://127.0.0.1:8000/. Готово — вы видите ваш сайт.

Введём в поле значение «Фрукты» и нажмём кнопку «Поиск».

Скриншот: Skillbox Media

Откроется главная страница index.html. Веб-сервер перебросил нас на выполнение скрипта handler.php, который, в свою очередь, отобразил на экране таблицу фруктов. Обратите внимание на адресную строку:

Так выглядит наш get-запрос
Скриншот: Skillbox Media

После вопросительного знака указывается имя параметра, в данном случае это название поля searchText, и через знак = указывается его введённое значение. Таких пар «имя = значение» может быть несколько, они должны отделяться друг от друга знаком &. Если вам нужно передать большой текст или конфиденциальные данные (например, логин и пароль), то не рекомендуем использовать get-запрос — для таких случаев есть метод post.

При дальнейшем изучении — например, в рамках курса «PHP-разработчик с нуля» от Skillbox — вы обязательно узнаете, как PHP взаимодействует с базой данных, что такое объектная модель, как выполнять асинхронные запросы без перезагрузки страницы и как строить архитектуру высоконагруженных систем.

Ещё раз подчеркнём, что PHP — один из самых востребованных языков программирования на данный момент. И если вдруг вы до сих пор не решили, стоит начинать учить PHP или нет, можете быть уверены — он откроет для вас большие возможности. Сможете ли вы ими воспользоваться — зависит только от вас.

Научитесь: Профессия PHP-разработчик с нуля до PRO
Узнать больше

Понравилась статья? Поделить с друзьями:
  • Левомицетин капли глазные инструкция по применению детям до года
  • Левомицетин капли глазные инструкция по применению детям до года
  • Нормакс капли в ухо инструкция по применению цена
  • Нормакс капли в ухо инструкция по применению цена
  • Что будет с руководством россельхозбанк рязани