Novos recursos
PHP 5.3.0 oferece uma grande gama de novos recursos:
- Suporte para namespaces foi adicionado.
- Suporte para Late Static Bindings foi adicionado.
- Suporte para jump labels (limitado a goto) foi adicionado.
- Suporte nativo para Closures (função Lambda/Anônima) foi adicionado.
- Existem dois novos métodos mágicos, __callStatic() e __invoke().
- Nowdoc sintaxe é suportada agora, similar a Heredoc sintaxe, mas com aspas simples.
- Agora é possível usar Heredocs para inicializar variáveis estáticas e propriedades/constantes de classes.
- Heredocs pode ser declarado com aspas duplas, complementando a sintaxe do Nowdoc.
- Constantes pode ser declaradas fora da classe usando o palavra chave const.
- O operador ternário operator agora tem uma forma de atalho: ?:.
- O HTTP stream wrapper agora considera todos os códigos de status do 200 ao 399 como status de sucesso.
-
Acesso dinâmico a métodos státicos agora é possível:
<?php
class C {
public static $foo = 123;
}
$a = "C";
echo $a::$foo;
?>O exemplo acima irá imprimir:
123
-
Exceptions podem ser aninhados:
<?php
class MyCustomException extends Exception {}
try {
throw new MyCustomException("Exceptional", 112);
} catch (Exception $e) {
/* Note the use of the third parameter to pass $e
* into the RuntimeException. */
throw new RuntimeException("Rethrowing", 911, $e);
}
?> - Um garbage collector para referências circulares foi adicionado, e agora está ativo por padrão.
- A função mail() agora tem suporte para registrar em log o email enviado via a diretiva de configuração mail.log. (Nota: Isto se aplica apenas para emails enviados através desta função.)