🧱 Суть
Переменные в PHP используются для хранения данных и всегда начинаются с символа $.
$name = "Evgeniy";
$age = 25;Константы – это значения, которые нельзя изменить после создания.
define('APP_NAME', 'My App');Область видимости определяет, где переменная доступна в коде.
📦 Проблема
1. Переменные доступны не там, где ожидается
function test() {
echo $name;
}Переменная вне функции недоступна внутри неё.
2. Случайное изменение важных значений
$database = "mysql";
$database = "sqlite";Обычная переменная может быть изменена в любой момент.
3. Конфликты имён
Большие проекты содержат много переменных, поэтому важно понимать, где они существуют.
✅ Решение
Использовать переменные и константы с пониманием их области видимости.
💻 Код
Переменные
Создание переменной:
$name = "Alex";Изменение значения:
$name = "Bob";Тип переменной определяется автоматически:
$number = 10;
$text = "Hello";
$active = true;Константы
Константа создаётся один раз и не может быть изменена.
Через define():
define('APP_NAME', 'My App');
echo APP_NAME;Через const:
const VERSION = '1.0.0';Попытка изменить:
APP_NAME = "New App";вызовет ошибку.
Область видимости
Глобальная область
Переменная создана вне функций:
$name = "Alex";
function hello() {
echo $name;
}Внутри функции $name недоступна.
Локальная область
Переменная существует только внутри функции:
function hello() {
$message = "Hello";
echo $message;
}После завершения функции переменная уничтожается.
Использование global
Можно получить доступ к глобальной переменной:
$name = "Alex";
function hello() {
global $name;
echo $name;
}Но такой подход обычно избегают в больших проектах.
Статические переменные
static сохраняет значение между вызовами функции.
function counter() {
static $count = 0;
$count++;
echo $count;
}Результат:
1
2
3Без static переменная создавалась бы заново при каждом вызове.
Переменные внутри классов
В классах используются свойства:
class User {
public string $name;
}Доступ:
$user->name = "Alex";🎯 Вывод
- переменные в PHP начинаются с
$ - константы нельзя изменить после создания
- область видимости определяет доступность переменной
- локальные переменные существуют только внутри своего блока
- глобальные переменные лучше использовать минимально
constи свойства классов помогают сделать код предсказуемее