PHP 7.1 - что нас ждёт

03.10.2016

php 

PHP 7.1.0 Release Candidate 3 Released - это новость от 29 сентября на php.net не может не радовать, праздник скоро придет к нам =).

Ну а пока, я решил немного написать о том что из новых фич нам стоит ожидать в PHP 7.1.

Типы nullable

Объявления типов для параметров и возвращаемых значений теперь могут быть помечены как nullable, предваряя имя типа с префиксом вопросительного знака. Это означает, что определенный тип, также как и NULL может быть передан в качестве аргумента или возвращен в качестве значения.

<?php

function testReturn(): ?string
{
    return 'elePHPant';
}

var_dump(testReturn());

function testReturn(): ?string
{
    return null;
}

var_dump(testReturn());

function test(?string $name)
{
    var_dump($name);
}

test('elePHPant');
test(null);
test();

Результат:

string(10) "elePHPant"
NULL
string(10) "elePHPant"
NULL
Uncaught Error: Too few arguments to function test(), 0 passed in...

Void функциии

Теперь появился новый тип возврата - void. Функции, объявленные с void в качестве типа возврата необходимо либо вообще исключить из возврата или использовать пустой оператор Return. NULL не является допустимым возвращаемым значением для функции void.

<?php
function swap(&$left, &$right) : void
{
    if ($left === $right) {
        return;
    }

    $tmp = $left;
    $left = $right;
    $right = $tmp;
}

$a = 1;
$b = 2;
var_dump(swap($a, $b), $a, $b);

Результат:

null
int(2)
int(1)

Тэги:
php