Skip to main content

Специфика синтаксиса

Переменные переменных

$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)

Приведение типов

$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 , разделитель списка

Префиксный и постфиксный способ записи

$m = ++$var;//увеличит значение на 1 и вернет значение
$m = $var++;//вернет значение и увеличит значение на 1

Выполнение команд оболочки

Обратные кавычки. 

$listing =  `ls -al /tmp`; 

Условные операторы

Стандартный синтаксис:

if (условие) 
    {действия}
else
    {действия}

Тенарный синтаксис:

 if($active) { echo "да";} else { есhо "нет";}

Альтернативный синтаксис:

<? if ($user_validated) :?> 
<tаble> 
<tr> 
<td>Имя:</td><td>Sophia</td> 
</tr> 
<tr> 
<td>Фaмилия:</td><td>lee</td>
</tr> 
</table> 
<? else: ?> 
Пожалуйста войдите. 
<? endif ?> 

Switch

switch ($name) {
case 'one': 
    //do something
    break;
case 'two':
    //do something
    break;
}
switch ($name):
case 'one': 
    //do something
    break;
case 'two':
    //do something
    break;
endswitch;

Циклы

while (условие) {
  //операторы
}
while (условие):
  //операторы
endwhile;

continue / break - следующая итерация / выход из текущего цикла. break 2 - выход из 2 текущих циклов.