Mudanças PHP 7.1 post
Entre as alterações previstas para a versão 7.1 do PHP, as que mais me chamaram atenção são:
Catching Multiple Exception Types
Atualmente caso queira tratar mais de um tipo de exceção, deve replicar o bloco catch
:
<?php
try {
// Some code...
} catch (ExceptionType1 $e) {
// Code to handle the exception
} catch (ExceptionType2 $e) {
// Same code to handle the exception
} catch (Exception $e) {
// ...
}
Já de acordo com a RFC aprovada, em cada catch
é possível interceptar mais de um tipo de exceção:
<?php
try {
// Some code...
} catch (ExceptionType1 | ExceptionType2 $e) {
// Code to handle the exception
} catch (\Exception $e) {
// ...
}
Void Return Type
Essa alteração é praticamente uma estenção do que foi introduzido no PHP 7.0, que é a definição de tipo de retornos em funções. Só que agora estendendo para void
, que deixa explícita uma função sem retorno.
function should_return_nothing(): void {
return 1; // Fatal error: A void function must not return a value
}
function lacks_return(): void {
// valid
}
Generalize support of negative string offsets
Habilita acesso a um caracter individual da String através de valores negativos.
$str='abcdef';
var_dump($str[-2]); // => string(1) "e"
$str{-3}='.';
var_dump($str); // => string(6) "abc.ef"
var_dump(isset($str{-4})); // => bool(true)
var_dump(isset($str{-10})); // => bool(false)
Support Class Constant Visibility
Permite adicionar modificador de acesso nas constantes da classe. Caso o modificador seja ocultado o valor padrão será public
.
class Token {
// Constants default to public
const PUBLIC_CONST = 0;
// Constants then also can have a defined visibility
private const PRIVATE_CONST = 0;
protected const PROTECTED_CONST = 0;
public const PUBLIC_CONST_TWO = 0;
//Constants can only have one visibility declaration list
private const FOO = 1, BAR = 2;
}
Para mais detalhes sobre as mudanças no PHP 7.1: