especialmente nos cenarios em que a performance e algo critico.No final das contas, o PHP 7 foi lancado com um novo motor com o codigo refatorado, a "Zend Engine 3", que passou a ser tao rapida quanto a HHVM. Se voce procurar na Internet alguns benchmarks comparando as duas, vai notar que em algumas ocasioes o PHP 7 supera o HHVM e o contrario tambem acontece. Isso porque o benchmark depende muito do cenario que se esta testando e isso leva em conta muitos fatores (a forma como o codigo PHP testado foi implementado, quais recursos foram usados, qual servidor HTTP foi usado, quantas requisicoes em paralelo foram feitas, etc). Pra mim, o importante e que o PHP 7 e muito superior ao PHP 5 em performance, e atingiu um nivel aceitavel frente a iniciativas como o HHVM.Declaracao de tipos escalares no PHP 7A declaracao de tipos escalares e a possibilidade de utilizar as palavras reservadas "int", "string", "float" e "bool" como inducao de tipo (type hinting) em funcoes. Continua sendo possivel utilizar as palavras reservadas "array", "callback", "callable" e "self", alem de nomes de classes e nomes de interfaces neste proposito.O beneficio deste recurso e que codigos passam a rodar de forma mais consistente e segura, do ponto de vista de funcionamento. Afinal, se algum programador escreve um codigo que chama uma funcao que espera receber tipos especificos, caso seja passado um valor com tipo inesperado ou valor inesperado, entao uma excecao e lancada. Isso forca os desenvolvedores a prestarem mais atencao ao que estao passando as funcoes, e facam as devidas conversoes, caso necessario. Vejamos um exemplo:function proximoNumero(int $a) { return $a + 1;}A inducao de tipo possui dois modos de avaliacao: o frouxo (que e o padrao) e o estrito.No modo estrito (strict), os parametros passados precisam ser exatamente do tipo esperado (ou NULL, caso o parametro permita receber NULL como valor default).No modo frouxo (coercive), os parametros passados podem ter um tipo diferente do esperado, mas precisam ser "aceitaveis", segundo estas regras: int: aceita valores inteiros aceita valores float (sao apenas convertidos para inteiro) aceita valores booleanos (true vira 1, e false vira 0) aceita strings, desde que respeitem a expressao regular /^[+-]?\d+/ (os simbolos subsequentes sao ignorados) float: aceita valores float aceita valores inteiros (sao apenas convertidos para float) aceita valores booleanos (true vira 1.0, e false vira 0.0) aceita strings, desde que respeitem a expressao regular /^[+-]?(\d+|\d*\.\d+)(e\d+)?/ (os simbolos subsequentes sao ignorados) bool: aceita valores booleanos aceita valores inteiros (inteiro 0 vira false, o resto vira true) aceita valores float (float 0.0 vira false, o resto vira true) aceita strings (string "" ou "0" viram false, o resto vira true) Para utilizar o modo estrito e preciso incluir uma declaracao no inicio do arquivo em que se deseja aplicar este modo (para cada arquivo e necessario incluir esta declaracao):<?phpdeclare(strict_types=1);Outra observacao importante e que os parametros com inducao de tipo escalar podem tambem ter um valor default (respeitando o tipo declarado), ou o valor default NULL. Portanto, se uma funcao precisa saber se um parametro de tipo