O documento apresenta as principais novidades do PHP 7 de acordo com Walker de Alencar, incluindo a remoção de extensões obsoletas, novas funcionalidades como declaração de tipos, operador spaceship e melhorias de performance de até 2x em relação ao PHP 5.6.
2. Quem?
Graduado em Desenvolvimento Web | Análise e Desenv. de Sistemas;
Desenvolve sistemas há mais de 18 anos.
Consultor especialista em PHP e Zend Certified Engineer (ZCE);
Arquiteto de software pela Poliedro, FNDE, CTIS, etc;
Atualmente:
Diretor Técnico da Wend Tecnologia.
Um dos Coordenadores do SGD no Portal Software Público
Membro do NFePHP
Walker de Alencar
3. Tópicos
1)E o PHP 6?
2)Extensões Removidas
3)Novas Funcionalidades
4)Performance
Walker de Alencar
4. E o PHP6?
●
Morreu antes de nascer…
●
Livros sobre PHP6 são da época do PHP5.2;
●
Amazon possui mais de 50 resultados para PHP6;
●
Votação: https://wiki.php.net/rfc/php6#vote
“… A votação foi encerrada. Por 58 a 24 votos, a próxima
versão major do PHP, que sucederá as versões 5.x, será
nomeada PHP 7.“
Walker de Alencar
6. Depreciado
Remoção dos construtores do PHP4
<?php
class Veiculo
{
public function veiculo()
{
// um construtor no PHP 4, lançará um E_DEPRECATED no PHP 7
}
public function __construct()
{
// um construtor no PHP 5
}
}
Walker de Alencar
7. Novas Funcionalidades
Palavras reservadas: int, float, string, bool;
<?php
// Coercive mode
function sumOfInts(int ...$ints)
{
return array_sum($ints);
}
var_dump(sumOfInts(2, '3', 4.1));
Walker de Alencar
8. Novas Funcionalidades
Declaração de tipo de retorno
<?php
function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
Walker de Alencar
11. Novas Funcionalidades
Classe Anônima
<?php
interface Logger {
public function log(string $msg);
}
...
$app = new Application;
$app->setLogger(new class implements Logger {
public function log(string $msg) {
echo $msg;
}
});
Walker de Alencar
12. Novas Funcionalidades
Operador “Null Coalesce”
<?php
$lista = ['chave' => 'valor'];
// PHP 5.6
$a = isset($lista['nao_tem']) ? $lista['nao_tem'] : 123; // válido
$a = $lista['nao_tem'] ?: 123; // E_NOTICE se a chave não existir
// PHP 7
$a = $lista['nao_tem'] ?? 123; // válido
Walker de Alencar