Переменные в PHP: объявление, типы, область видимости и частые ошибки

Переменные в PHP: объявление, типы, область видимости и частые ошибки

Переменные в PHP: объявление, типы, область видимости и частые ошибки

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

Что такое переменная в PHP

Переменная в PHP — это именованное хранилище значения. В PHP имя переменной всегда начинается со знака $, после которого идёт имя: буквы, цифры и подчёркивание. Начинать имя с цифры нельзя.

<?php
$name = 'Анна';
$age = 25;
$isAdmin = false;

 echo $name;
?>

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

<?php
$value = '100'; // строка
$value = 100;   // теперь целое число
?>

Правила именования переменных

Хорошие имена переменных делают код понятнее. Сравните:

<?php
$a = 1200;
$b = 15;
$c = $a - $b;
?>

И более читаемый вариант:

<?php
$totalPrice = 1200;
$discount = 15;
$finalPrice = $totalPrice - $discount;
?>

Рекомендации:

  • используйте осмысленные имена: $userName, $orderTotal, $email;
  • придерживайтесь одного стиля, чаще всего в PHP используют camelCase;
  • не называйте переменные слишком общо: $data, $temp, $x, если можно точнее;
  • помните, что $name и $Name — разные переменные.
  • Основные типы данных в PHP

    Переменные в PHP могут хранить разные типы значений:

    <?php
    $title = 'PHP Basics';      // string, строка
    $count = 10;                // int, целое число
    $price = 99.50;             // float, число с точкой
    $isPublished = true;        // bool, логическое значение
    $tags = ['php', 'web'];     // array, массив
    $user = null;               // null, отсутствие значения
    ?>

    Чтобы узнать тип переменной, используйте gettype() или var_dump():

    <?php
    $price = 99.50;
    
    echo gettype($price); // double
    var_dump($price);     // float(99.5)
    ?>

    var_dump() особенно полезен при отладке: он показывает и тип, и значение. Но не оставляйте такие вызовы в production-коде.

    Приведение типов: когда PHP меняет значение сам

    PHP часто автоматически приводит типы. Например, строка с числом может участвовать в арифметике:

    <?php
    $a = '10';
    $b = 5;
    
    echo $a + $b; // 15
    ?>

    Но полагаться на магию языка опасно. Если вы ждёте число из формы, лучше явно привести значение:

    <?php
    $quantity = (int) $_POST['quantity'];
    $price = (float) $_POST['price'];
    
    $total = $quantity * $price;
    ?>

    Важно: пример выше показывает именно приведение типов, но реальные данные из формы также нужно валидировать. Пользователь может отправить пустую строку, отрицательное число или вообще текст.

    Проверка переменной: isset(), empty() и null

    Новички часто сталкиваются с предупреждением о неопределённой переменной или индексе массива. Для проверки существования переменной используйте isset().

    <?php
    if (isset($userName)) {
        echo 'Имя: ' . $userName;
    } else {
        echo 'Имя не указано';
    }
    ?>

    isset() вернёт false, если переменной нет или она равна null.

    <?php
    $name = null;
    
    var_dump(isset($name)); // false
    ?>

    empty() проверяет, является ли значение «пустым»: пустая строка, 0, ‘0’, false, null, пустой массив.

    <?php
    $value = '0';
    
    if (empty($value)) {
        echo 'Пусто'; // выполнится
    }
    ?>

    Совет: используйте empty() осторожно, если значение 0 является допустимым. Например, возраст 0, количество 0 или скидка 0 могут быть нормальными значениями.

    Область видимости переменных

    Область видимости определяет, где переменная доступна. Переменная, созданная внутри функции, не видна снаружи. И наоборот: внешняя переменная не доступна внутри функции напрямую.

    <?php
    $message = 'Привет';
    
    function showMessage() {
        // echo $message; // ошибка: переменная недоступна
        $localMessage = 'Здравствуйте';
        echo $localMessage;
    }
    
    showMessage();
    // echo $localMessage; // тоже недоступна
    ?>

    Можно использовать ключевое слово global, но в большинстве случаев лучше передавать данные через параметры функции:

    <?php
    function showMessage(string $message): void {
        echo $message;
    }
    
    showMessage('Привет из функции');
    ?>

    Такой код проще тестировать, читать и поддерживать. Если вы хотите системно разобраться не только с переменными, но и с функциями, формами, MySQL и полноценной разработкой на PHP, посмотрите курс «PHP и MySQL с Нуля до Гуру 3.0» — практический путь от первых скриптов до рабочих проектов.

    Константы: когда значение не должно меняться

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

    <?php
    define('SITE_NAME', 'Мой сайт');
    const ITEMS_PER_PAGE = 20;
    
    echo SITE_NAME;
    echo ITEMS_PER_PAGE;
    ?>

    Обычно имена констант пишут заглавными буквами. Это не обязательное правило языка, но распространённая практика.

    Практический пример: расчёт суммы заказа

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

    <?php
    $productName = 'Клавиатура';
    $price = 2500;
    $quantity = 2;
    $hasDiscount = true;
    $discountPercent = 10;
    
    $total = $price * $quantity;
    
    if ($hasDiscount) {
        $discountAmount = $total * $discountPercent / 100;
        $total = $total - $discountAmount;
    }
    
    echo 'Товар: ' . $productName . '<br>';
    echo 'Количество: ' . $quantity . '<br>';
    echo 'Итого: ' . $total . ' руб.';
    ?>

    Здесь важно, что каждая переменная отвечает за конкретную часть логики. Такой подход проще расширять: например, добавить промокод, доставку или налог.

    Частые ошибки новичков

  • Забыли знак $. В PHP переменная без $ не является переменной.
  • Опечатка в имени. $userName и $username — разные переменные.
  • Использование переменной до объявления. Сначала задайте значение, потом используйте.
  • Смешивание типов без проверки. Особенно при работе с данными из форм.
  • Слишком короткие имена. Через неделю вы сами не вспомните, что означало $d или $tmp2.
  • Лучшие практики

  • давайте переменным понятные имена;
  • не храните в одной переменной данные разного смысла;
  • используйте var_dump() для отладки, но удаляйте его из готового кода;
  • передавайте значения в функции через параметры, а не через global;
  • явно приводите типы там, где это важно для логики;
  • включайте отображение ошибок на этапе разработки, чтобы быстрее находить проблемы.
  • Итог

    Переменные в PHP — основа любого скрипта. Нужно понимать, как они объявляются, какие типы данных могут хранить, как работает область видимости и чем отличаются isset(), empty() и null. Чем аккуратнее вы работаете с переменными, тем меньше неожиданных ошибок получите в формах, расчётах, функциях и реальных проектах.

    Источник

    НЕТ КОММЕНТАРИЕВ

    Оставить комментарий