Основы PHP 7 Часть #1: Переменные, Константы, Типы данных
Освежаю знания по PHP, поэтому решил как можно глубже разобраться в теме, а заодно весь материал законспектировать и выкладывать здесь, разбив на части.
Навигация по статье:
- Как PHP обрабатывает файл
- Комментарии
- Особенности PHP
- Вывод данных
- Вывод данных
- Переменные
- Использование переменных
- Константы
- Ошибки в PHP
- Типы данных: числа
- Типы данных: строки
- Арифметические операторы
- Конкатенация строк
- Типы данных: boolean и NULL
- Манипуляции с типами
- Управление кодом: if
- Таблица сравнения типов
- Операторы сравнения
- Логические операторы
- Управление кодом: else
- Управление кодом: elseif
- Управление кодом: switch
- Типы данных: массив
Как PHP обрабатывает файл
<p>Это будет проигнорировано PHP и передано серверу.</p> <?php //... Здесь PHP-код ?> <p>Это тоже будет проигнорировано PHP и передано серверу.</p> <? //... Здесь PHP-код // Здесь используется короткий открывающий тэг // short_open_tag (php.ini) ?> <p>И это будет проигнорировано PHP и передано серверу.</p> <?php //... еще код //Скрипт заканчивается без закрывающего тега PHP
Комментарии
<?php //Это однострочный комментарий в стиле c++ # Это комментарий в стиле оболочки Unix /* Это многострочный комментарий еще одна строка комментария */
Особенности PHP
<?php инструкция 2; инструкция 1; ?> <?php инструкция 1; инструкция 2 ?> <?php инс трук ция 1; ?>
Вывод данных
<?php echo "Привет мир!"; print "Привет мир!"; //Некоторые предпочитают передачу нескольких аргументов echo 'Эта', 'строка', 'была', 'создана', 'несколькими параметрами.'; //Вывод результата функции echo strftime('%d-%B-%Y, %A');
Переменные
- Переменные в PHP начинаются со знака доллара (
$
) - Имя переменной должно начинаться с буквы или символа подчеркивания
- Последующие символы в имени переменной могут быть буквами, цифрами или символом подчеркивания в любом количестве
- Имя переменной чувствительно к регистру
Использование переменных
// Присвоим переменной $x значение 10 $x = 10; // Добавим к значению в переменной $x значение 15 $x = $x + 15; // Скопировали значение переменной $x в переменную $y $y = $x; // Выведем значения переменных $x и $y echo $x, $y; // Удалим переменную $x unset($x); // Выведем значения переменных $x и $y echo $x, $y; // Вывод значения переменной $age = 25; <h1>Вам <?php echo $age ?>лет</h1> // Что и <h1>Вам <?=$age ?>лет</h1> // Преобразование кодировок echo iconv("windows-1251", "UTF-8", $krakozyabry);
Константы
define("USER_NAME", "Вася"); echo USER_NAME; // выводит"Вася" define("ONE_HUNDRED", 100); define("ONE_HUNDRED_TEN", ONE_HUNDRED + 10); const TWO_HUNDRED = 200;// PHP 5.3 const TWO_HUNDRED_TEN = TWO_HUNDRED + 10;// PHP 5.6
Ошибки в PHP
Уровни ошибок:
E_PARSE
E_ERROR
E_WARNING
E_NOTICE
E_DEPRECATED
Директивы PHP.INI
display_errors = on
error_reporting = E_ALL & ~E_NOTICE
// Включаем вывод всех ошибок error_reporting(E_ALL); // Отключаем вывод всех ошибок error_reporting(0); // Включаем определённые уровни ошибок error_reporting(E_ERROR | E_WARNING); error_reporting(E_ALL & ~E_DEPRECATED);
Типы данных: числа
// Целые числа (integer) $int = 1234; // десятичное число $int = -123; // отрицательное число $int = 0123; // восьмеричное число(эквивалентно 83 в десятичной системе) $int = 0x1A; // шестнадцатеричное число(эквивалентно 26 в десятичной системе) $int = 0b11111111; // двоичное число(эквивалентно 255 в десятичной системе) // Числа с плавающей точкой (float, также известны как double и real) $float = 1.234; $float = 1.2e3; $float = 7E-10;
Типы данных: строки
// Строка(string) -это набор символов, где символ -это то же самое, что и байт echo 'это простая строка в апострофах'; echo 'это простая строка в двойных кавычках'; echo "Это будет развернуто:\n в две строки"; echo 'А это не будет развернуто:\n в две строки'; $name = "John"; $age = 25; echo "Значения переменных $name и $age подставятся в строку"; echo 'А здесь значения переменных $name и $age неразворачиваются'; HEREDOC подставятся в строку, а сама строка развернётся Значения переменных $name и $age HEREDOC; // Экранирование переменных $juice = "apple"; // Проблема echo "He drank some $juicejuice."; echo "He drank some juice made of $juices."; // Решение echo "He drank some juice made of {$juice}s."; echo "He drank some juice made of ${juice}s."; // Доступ к символу в строке (фактически, к байту!) $str = 'This is a test.'; // Получение первого символа в строке $first = $str{0}; // Получение третьего символа в строке $third = $str{2}; // Получение последнего символа в строке $last = $str{strlen($str)-1}; // Изменение последнего символа в строке $str{strlen($str)-1} = '!';
Арифметические операторы

Конкатенация строк
$a = "Hello "; $b = $a ."World!"; // $b теперь содержит строку "Hello World!" $a = "Hello"; $b = "World!"; $c = $a . " " .$b; // $c теперь содержит строку "Hello World!" // Кстати, $d тоже содержит строку "Hello World!" $d = "$a $b";
Типы данных: boolean и NULL
$x = true; // присвоить $x значение TRUE $y = false; // присвоить $y значение TRUE $z = null; // присвоить $z значение NULL unset($x); echo gettype($x); // NULL
Манипуляции с типами
// Проверка типов $str = "John"; $int = 10; $bool = true; echo gettype($str); // "string" echo gettype($int); // "integer" echo gettype($bool); // "boolean" echo gettype($x); // "NULL" is_string($str); // true is_integer($int); // true is_boolean($bool); // true is_null($x); // true // Приведение типов $int_from_str =(int)$str; // 0 $str_from_int =(string)$int; // '10' $bool_from_int =(bool)$int; // true // Было ли присвоено переменной какое-либо значение? isset($str); // true isset($x); // false $x = null; isset($x); // false
Управление кодом: if

$shop = true; // Одна инструкция if ($shop) echo "Иду в магазин"; echo "Иду домой"; // Группа инструкций if ($shop) { echo "Иду в магазин"; echo "Покупаю хлеб"; } echo "Иду домой";
Таблица сравнения типов

Операторы сравнения

Логические операторы

Управление кодом: else

$shop = "open"; // Одна инструкция if ($shop == "open") echo "Иду в магазин"; else echo "Иду в киоск"; echo "Иду домой"; $shop = true; $money = true; // Группа инструкций if ($shop and $money) { echo "Иду в магазин"; echo "Покупаю хлеб"; } else { echo "Иду домой"; echo "Туплю в телевизор"; } // Тернарный оператор if ($shop == "open") echo "Иду в магазин"; else echo "Иду в киоск"; echo ($shop) ? "Иду в магазин" : "Иду в киоск"; // NULL coalescing оператор (PHP7) echo isset($name) ? $name: "Unknown"; echo $name?? "Unknown";
Управление кодом: elseif

if ($a > $b) { echo "a больше,чем b"; } elseif ($a == $b) { echo "a равноb"; } else { echo "a меньше, чем b"; }
Управление кодом: switch
$i = 20; switch ($i) { case 0: echo "Результат: 0";break; case 1: echo "Результат: 1";break; case 2: echo "Результат: 2";break; case 3: echo "Результат: 3";break; case 4: echo "Результат: 4";break; default: echo "Результат: много"; }
Типы данных: массив
// Создание пустого массива $arr = []; // До PHP 5.4 $arr = array(); // Создание массиваc элементами $arr = ["John", "root", "1234"]; // До PHP 5.4 $arr = array("John", "root", "1234"); // Обращение к элементу массиваecho $arr[1]; // root // Добавление элементов в массив $arr[] = 25;$arr[] = true; // Сколько элементов в массиве? echo count($arr); // 5 // Выводим удобочитаемую информацию о переменной print_r($arr); // Выводим полную информацию о переменной var_dump($arr); // Ещё раз об индексации элементов массива // Если массив не существует, он будет создан $arr[] = 1; // Массив с одним элементом с ключом 0 $arr[5] = 2; // Добавили второй элемент с ключом 5 $arr[] = 3; // Добавили третий элемент с ключом 6 unset($arr); // Удалили массив $arr = [12=>1, 5=>2]; // Создали массив из двух элементов с ключами 12 и 5 $arr[] = 3; // Добавили третий элемент с ключом 13 unset($arr[12]); // Удалили элемент массива с ключом 12 // Ассоциативный массив $user = [ "name"=>"John", "login"=>"root", "password"=>"1234", "age"=>25, true ]; echo $user["name"]; // John echo $user[0]; // 1 // Многомерный массив $users[0]= [ "login" => "john", "pass" => "1234" ]; $users[1]= [ "login" => "mike", "pass" => "5678" ]; echo $users[1]["login"]; // mike