array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'migration70.other-changes.php', 1 => 'Outras mudanças', ), 'up' => array ( 0 => 'migration70.php', 1 => 'Migrando do PHP 5.6.x para o PHP 7.0.x', ), 'prev' => array ( 0 => 'migration70.removed-exts-sapis.php', 1 => 'Extensões e SAPIs removidas', ), 'next' => array ( 0 => 'migration56.php', 1 => 'Migrando do PHP 5.5.x para o PHP 5.6.x', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'appendices/migration70/other-changes.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
Palavras reservadas globalmente agora são permitidas como nomes de propriedades, constante e métodos dentro de classes, interfaces e traits. Isso reduz o aspecto de quebras no BC quando novas palavras-chave são introduzidas e evita restrições de nomes em APIS.
Isso é particularmente útil quando estiver criando DSLs com interfaces fluentes:
<?php
// 'new', 'private', e 'for' eram proibidas
Project::new('Project Name')->private()->for('purpose here')->with('username here');
?>
A única limitação é que a palavra-chave class
continua
não podendo ser utilizada como nome de constante, caso contrário conflitará
com a sintaxe de resolução de nomes de classe (ClassName::class
).
Anteriormente, um aviso era emitido se a
configuração INI date.timezone
não havia
sido definida antes de utilizar qualquer função de data ou tempo. Agora, este aviso
foi removido (com a diretiva date.timezone
padronizada para UTC).