Новое в PHP 5.3: новое в синтаксисе

В PHP 5.3 немного обновился синтаксис — добавилось несколько полезных и удобных инструкций.

  1. NOWDOC (соотносится с HEREDOC так же, как строка в одинарных кавычках со строкой в двойных).
  2. Тернарный оператор (?:): теперь можно опустить второй оператор, при этом если первое выражение приводится к значению TRUE, то оно и будет использовано далее.

    Пример

    <?php
    echo 1 ?: 0; //вывод: 1
    ?>
    
  3. Оператор GOTO. Применяется для перевода выполнения программы в другую точку программы. В PHP 5.3 поддерживается ограниченный goto: можно переходить только внутри одного файла, внутри одного контекста (нельзя прыгать из функции в функцию), нельзя таким образом входить внутрь циклов или условных операторов (выходить можно).
    Предполагается его использование вместо многоуровневых операторов break.

    Пример

    <?php
    for($i=0,$j=50; $i<100; $i++) {
      while($j--) {
        if($j==17) goto end; 
      }  
    }
    echo "i = $i";
    end:
    echo 'j совпало с 17';
    ?>
    вывод: j совпало с 17
    
    
  4. __callStatic вызывается, когда встречается ссылка на несуществующий метод в статическом контексте (аналог __call для объектного контекста).

    __callStatic  ( string $name  , array $arguments  )
    

Также наконец-то появился нативный MYSQL-драйвер (mysqlnd). Теперь нет проблем с лицензированием, и поддержка MYSQL по умолчанию снова включена. Плюс к этому ускорилась (что очевидно), скорость работы, меньше памяти отъедает соединение. Также теперь возможно постоянное соединение (для этого нужно дописать префикс "p:", к примеру, $host="p:localhost";).
При этом всё осталось прозрачным для программиста - всё будет работать как прежде, за одним исключением:
при работе через mysqlnd добавился новый API mysqli_fetch_all().

Полный список изменений
На русском коротко

LEAVE A COMMENT