- Создавать переменные и распознавать основные типы PHP
- Различать строки в одинарных и двойных кавычках, интерполяцию и heredoc
- Обрабатывать текст функциями
strlen,str_replace,sprintfиnumber_format
Вспомни страницу профиля на любом сайте: имя, возраст, баланс, отметка «студент». Программа должна где-то хранить эти данные. Для этого и нужны переменные. А поскольку в веб-программировании мы чаще всего работаем с текстом, в этом уроке особое внимание уделим строкам.
Переменные и типы
В PHP имя переменной начинается со знака $, а значение присваивается с помощью =. Объявлять переменную заранее и указывать её тип не нужно: PHP сам определяет тип по значению. Такие языки называют языками с динамической типизацией. Имя должно начинаться с буквы или _; обычно используют стиль camelCase, например $firstName.
<?php
$name = "Aysel";
$age = 15;
$height = 1.62;
$isStudent = true;
$phone = null;
var_dump($name);
var_dump($age);
var_dump($height);
var_dump($isStudent);
var_dump($phone);
echo gettype($age), " / ", get_debug_type($height), "\n";string(5) "Aysel" int(15) float(1.62) bool(true) NULL integer / float
| Тип | Пример | Что хранит |
|---|---|---|
int | 15, -3, 2026 | целые числа |
float | 1.62, 0.5, 3e2 | дробные числа (в коде разделитель — всегда точка) |
string | "Aysel", 'PHP' | текст |
bool | true, false | логическое значение: истина или ложь |
null | null | «значения нет» |
array | [5, 4, 5] | набор значений (урок 4) |
var_dump показывает и тип, и содержимое значения — это самая полезная функция для отладки. Для строк она выводит ещё и длину: string(5). gettype возвращает старые названия (integer, double), а появившаяся в PHP 8 get_debug_type — современные (int, float). Для значений, которые не меняются, создай константу: const MAX_SCORE = 100; — в имени константы нет $.
Одинарные и двойные кавычки
Строка в одинарных кавычках хранит текст как есть: в ней не работают ни переменные, ни специальные символы вроде \n. В строке в двойных кавычках переменные заменяются своими значениями — это называется интерполяцией, — и работают символы \n, \t. Чтобы склеить строки, используют оператор точка ., а чтобы дописать в конец — .=.
<?php
$city = "Ganja";
$year = 2026;
$fruit = "apple";
echo 'Hello from $city\n', "\n";
echo "Hello from $city in $year\n";
echo "Hello from " . $city . "!\n";
echo "I ate two {$fruit}s\n";
$message = "Good";
$message .= " luck";
echo $message, "\n";Hello from $city\n Hello from Ganja in 2026 Hello from Ganja! I ate two apples Good luck
Фигурные скобки в {$fruit} подсказывают PHP, где заканчивается имя переменной. Без них запись "$fruits" искала бы другую, несуществующую переменную $fruits. Используй {...} и когда вставляешь в строку элемент массива или свойство объекта: "{$user['name']}".
Heredoc и nowdoc
Для многострочного текста (письма, шаблона e-mail, куска HTML) удобен heredoc: он начинается с <<<TEXT, заканчивается такой же меткой и подставляет переменные, как двойные кавычки. Nowdoc (<<<'TEXT', имя в кавычках) хранит текст как есть, подобно одинарным кавычкам. Начиная с PHP 7.3 закрывающую метку можно сдвинуть отступом — тогда такой же отступ убирается из начала всех строк.
<?php
$name = "Murad";
$course = "PHP";
$letter = <<<TEXT
Dear $name,
welcome to the {$course} course!
Lesson 1 starts today.
TEXT;
echo $letter, "\n";
echo <<<'RAW'
Variables like $name stay as they are.
RAW;Dear Murad, welcome to the PHP course! Lesson 1 starts today. Variables like $name stay as they are.
Полезные строковые функции
<?php
$text = " Learning PHP is fun ";
$clean = trim($text);
echo strlen($clean), "\n";
echo strtoupper($clean), "\n";
echo str_replace("fun", "easy", $clean), "\n";
echo substr($clean, 0, 8), "\n";
var_dump(str_contains($clean, "PHP"));
echo ucfirst("baku"), "\n";
echo sprintf("%.2f AZN", 12.5), "\n";
echo number_format(1234567.891, 2), "\n";19 LEARNING PHP IS FUN Learning PHP is easy Learning bool(true) Baku 12.50 AZN 1,234,567.89
trimубирает пробелы в начале и в конце строки — всегда так очищай данные из форм.substr($s, 0, 8)берёт 8 символов, начиная с позиции 0;str_contains(PHP 8) проверяет, есть ли подстрока.sprintfстроит строку по шаблону:%.2fподставляет дробное число с двумя знаками после запятой,%d— целое,%s— строку.number_formatокругляет число и разделяет разряды тысяч.
Главное
- Имя переменной начинается с
$; PHP — язык с динамической типизацией и определяет тип по значению. - Основные типы:
int,float,string,bool,nullиarray;var_dumpпоказывает тип вместе со значением. - Двойные кавычки обрабатывают переменные и
\n, одинарные хранят текст как есть; строки склеиваются точкой.. - Heredoc подставляет переменные в многострочный текст, а nowdoc хранит текст без изменений.
- Для текста с азербайджанскими, русскими или турецкими буквами используй функции
mb_:strlenсчитает байты.
Проверь себя
Вопросов: 10. Каждый правильный ответ приносит XP.
var_dump(7.0);?