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