# Специфика синтаксиса **Глобальные переменные:** ```php define(); ``` **Переменные переменных** ```php $foo = "bar"; $$foo = 'bаz"; ``` После выполнение второго оператора у переменной $bar будет значение "baz". Значение переменной foo рассматривается как имя переменной. **Переменные-ссылки** ```php $black = &$white ``` **Области видимости переменной:** - Локальная область: переменные, объявленные в функции, локальны для функции. Но созданная внутри цикла - все равно функция. - Глобальная: перед переменной поставить global ```php function updateCounler() { global $counter; $counler++; } $counter = 10; updateCounter(); echo $counter; ``` В массиве $GLOBALS хранятся глобальные переменные, доступные напрямую ```php function updateCounter() { $GLOBALS[counter]++; } ``` - Статическая переменная сохраняет значение между вызовами функции. Объявляется через static isset() проверяет, существует ли переменная, unset() уничтожает переменную. **Операторы**
Приор. | Оператор | Описание |
21 | clone, new | создание нового объекта |
20 | \[ | индекс массива |
19 | ~ | побитное отрицание |
++ | инкремент | |
-- | декремент | |
(int), (bool), (float), (string), (array), (object), (unset) | Приведение типов ``` $b = (int) $a; ``` | |
@ | подавление ошибок | |
18 | isinstanceof | проверка типа |
17 | ! | Логическое отрицание |
16 | \* / % | Умножение, деление, остаток от деления |
15 | + - . | Сложение, вычитание, конкатенация строки |
14 | << >> | Побитный сдвиг влево, побитный сдвиг вправо |
13 | < <= > >= | Меньше, меньше или равно, больше, больше или равно |
12 | == != <> === !== | Равно, не равно, тип и значение равны, тип и значение не равны |
11 | & | Побитное и |
10 | ^ | Побитное исключающее или |
9 | | | Побитное или |
8 | && | Логическое и |
7 | || | Логическое или |
6 | ?: | Условный оператор |
5 | = += -= и т д | Присваивание |
4 | and | Логическое и |
3 | xor | Логическое исключающее или |
2 | or | Логическое или |
1 | , | разделитель списка |