🐘 Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…: ΠΊΠ°ΠΊ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ PHP с нуля Π·Π° 30 ΠΌΠΈΠ½ΡƒΡ‚?

Π’ этом руководствС знакомимся с основами PHP, запускаСм Π²Π΅Π±-сСрвСр Π² Ubuntu ΠΈ Windows, ΠΈ собираСм HTML-страницу ΠΈΠ· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… 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 β†’ Script β†’ Run Script, Π»ΠΈΠ±ΠΎ Π½Π°ΠΆΠΌΠ΅ΠΌ Π½Π° клавиши Ctrl + Shift + B (рис. 1).

Рис. 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 = "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

Рис. 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

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ while выполняСт ΠΊΠΎΠ΄ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ условия Π½Π΅ станСт Π»ΠΎΠΆΠ½Ρ‹ΠΌ.

Бинтаксис Ρ†ΠΈΠΊΠ»Π° while
while (условиС) {
    // ΠΊΠΎΠ΄
}

Π’Ρ‹Π²Π΅Π΄Π΅ΠΌ Π½Π° экран ΠΏΡΡ‚ΡŒ Ρ€Π°Π· слово 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 (условиС);

НапишСм Ρ†ΠΈΠΊΠ», выводящий Π½Π° экран Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ€Π°Π·Π° слово Hello:

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

/*
Hello
Hello
Hello
Hello
*/

9. Π¦ΠΈΠΊΠ» for

Рис. 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

ΠœΠ°ΡΡΠΈΠ²Ρ‹ – упорядочСнная коллСкция элСмСнтов с доступом ΠΏΠΎ индСксу ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Ρƒ. Π˜Π½Π΄Π΅ΠΊΡΠ½Ρ‹ΠΉ массив создаСтся двумя способами:

Π§Π΅Ρ€Π΅Π· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ 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']

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ассоциативный массив:

<?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:\php7\page\. Π€Π»Π°Π³ -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 Π²Π΅Π±-сСрвСра

Если ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ ΠΎΡˆΠΈΠ±ΠΊΡƒ 404, Π·Π½Π°Ρ‡ΠΈΡ‚ сСрвСр Π·Π°ΠΏΡƒΡ‰Π΅Π½.

XAMPP

Π‘ΠΊΠ°Ρ‡Π°Π΅ΠΌ ΠΈ установим XAMPP. Π’ ΠΏΠ°ΠΏΠΊΠ΅ C:\xampp\htdocs\ создадим ΠΏΠ°ΠΏΠΊΡƒ нашСй странички page. Запустим Π²Π΅Π±-сСрвСр Apache, ΠΊΠ»ΠΈΠΊΠ½ΡƒΠ² ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Start. Π£Π·Π½Π°Π΅ΠΌ Π²Π΅Ρ€ΡΠΈΡŽ PHP, ввСдя Π² консоли (Shell) ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ php -v.

Рис. 7. Запуск сСрвСра с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ XAMPP

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π»ΠΈ сСрвСр, пСрСйдя ΠΏΠΎ адрСсу http://localhost/. Если появилось привСтствСнноС сообщСниС, Π·Π½Π°Ρ‡ΠΈΡ‚ сСрвСр Π·Π°ΠΏΡƒΡ‰Π΅Π½.

Рис. 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-Ρ„Π°ΠΉΠ»ΠΎΠ²
***

Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

  • Π ΠΎΠ±ΠΈΠ½ Никсон. Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ динамичСскиС Π²Π΅Π±-сайты с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PHP, MySQL, JavaScript, CSS ΠΈ HTML5;
  • ΠšΠΎΡ‚Π΅Ρ€ΠΎΠ², Бимдянов. PHP 7;
  • Π’Π΅Π»Π»ΠΈΠ½Π³, Вомсон. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ PHP ΠΈ MySQL;

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π² нашСй ΡΡ‚Π°Ρ‚ΡŒΠ΅ ВОП-10 ΠΊΠ½ΠΈΠ³ ΠΏΠΎ PHP: ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ профСссионала.

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠΈ

YouTube-ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈ курсы

БСсплатныС курсы Π½Π° русском языкС:

PHP Π² Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Π°Β»

***

Π˜Ρ‚ΠΎΠ³

  • Π²Ρ‹ познакомились с синтаксисом PHP ΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…;
  • ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ условныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹;
  • запустили Π²Π΅Π±-сСрвСр Π² Ubuntu ΠΈ Windows;
  • собрали страничку HTML ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² PHP.

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

matyushkin
24 мая 2020

πŸ“• ВОП-10 ΠΊΠ½ΠΈΠ³ ΠΏΠΎ PHP: ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ° Π΄ΠΎ профСссионала

Книги с высокими ΠΎΡ†Π΅Π½ΠΊΠ°ΠΌΠΈ, посвящСнныС языку PHP ΠΈ PHP-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°ΠΌ. Расстав...
admin
02 августа 2018

ΠŸΠΎΠ΄Π±ΠΎΡ€ΠΊΠ° ΠΊΠ½ΠΈΠ³ ΠΏΠΎ PHP для программистов любого уровня

По PHP написано ΠΌΠ½ΠΎΠ³ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… ΠΊΠ½ΠΈΠ³. ΠœΡ‹ ΠΆΠ΅ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π»ΠΈ самыС Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ… ΠΈ ΠΏΠΎ...