Рубрики
Uncategorized

Различия между PHP 5.6 и PHP 7.0

Автор оригинала: David Wong.

Разница между этими двумя

  • Производительность php 7.0 в два раза выше, чем у php5.6.
  • PHP 7.0 полностью поддерживает 64-разрядную версию.
  • Все фатальные ошибки до PHP 7.0 были изменены на исключение исключений.
  • Добавлен оператор null join (??). Эффект эквивалентен троичному оператору.
  • Php7.0 добавлено объявление типа возвращаемой функции.
  • PHP 7.0 добавил объявление скалярного типа.

    Объявление типа параметра функции в PHP 7 может быть скалярным. В PHP 5 вы можете использовать только имя класса, интерфейс, массив или вызываемый (PHP 5.4, который может быть функцией, включая анонимные функции). Теперь вы также можете использовать string, int, float и bool.

  • Добавлен новый анонимный класс.

В PHP 5.3 появились анонимные функции, а теперь добавлены анонимные классы;

  • После PHP 7.0 некоторые старые SAPI (серверный порт прикладного программирования) и расширения удаляются.
  • Define определяет массив констант.

Скалярный тип PHP

#There are mainly two modes, compulsory mode and strict mode
declare(strict_types=1)
#1 indicates strict type verification mode, which acts on function calls and return statements; 0 indicates weak type verification mode.

Объявление типа возврата

PHP 7 добавляет поддержку объявления типа возврата. Аналогично объявлению типа параметра, объявление типа возвращаемого значения указывает тип возвращаемого значения функции.

Оператор слияния Null

Если переменная существует и значение не NULL , она вернет свое собственное значение, в противном случае она вернет свой второй операнд.

$site = isset($_GET['site']) ? $_GET['site'] : 'wo';
Abbreviated
$site = $_GET['site'] ??'wo';

Оператор космического корабля (комбинирующий компаратор)

Оператор космического корабля используется для сравнения двух выражений. Когда $a меньше, равно или больше $B, он возвращает-1, 0 или 1 соответственно

 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1

// floating point number
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
 
// String
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>

Определение постоянного массива с помощью функции define()

*Определение массива констант с помощью функции define()

Определите константы с помощью функции define()

Определение констант с помощью ключевого слова const

Анонимный класс

Php 7 поддерживает передачу нового класса Для создания экземпляра анонимного класса, который можно использовать для замены некоторых полных определений классов “записать после использования”.

logger;
    }

    public function setLogger(Logger $logger) {
         $this->logger = $logger;
    }
}

$app = new Application;
$app->setLogger(new class implements Logger {
    public function log(string $msg) {
        echo $msg;
    }
});

var_dump($app->getLogger());
?>

Выход:

object([email protected])#2 (0) {
}

Справочные ресурсы

  • Новые характеристики