PHP 7.1 (01.12.2016)

Nullable типы

🔲 Nullable types (?Type)

Объявление:

				
					function log(?string $msg): ?int {
    return $msg ? strlen($msg) : null;
}
log("hi"); // 2  
log(null); // null
				
			

→ ?Type = Type|null. Работает для аргументов, возвращаемых значений, свойств (в 7.4+).

 

Псевдотип void (как указание, что ф-ция ничего не возвращает)

📦 Void return type

Для функций, ничего не возвращающих:

				
					function dump($data): void {
    var_dump($data);
    // return;      // ✅ допустимо
    // return null; // ❌ Fatal error
}
				
			

Oбласть видимости константа

🎯 Class constant visibility

Было: все константы public.
Стало:

				
					class Config {
    public const PUBLIC = 1;
    protected const INTERNAL = 2;
    private const SECRET = 3;
}
				
			

Псевдотип iterable = array | Traversable

Принимает array или Traversable:

				
					function process(iterable $data): void {
    foreach ($data as $item) { /* ... */ }
}
process([1,2,3]);      // ✅
process(new ArrayIterator([4,5])); // ✅
				
			

Прочее

новый list() $arr = [‘x’=>1, ‘y’=>2]; [‘x’=>$a, ‘y’=>$b] = $arr;

mcrypt — заменён на openssl