A nova versão do PHP introduz, entre outras coisas, Property Hooks, visibilidade assimétrica para propriedades de classes e uma nova API DOM HTML5.
Com Property Hooks, é possível definir lógica de get e set diretamente na declaração da propriedade (semelhante ao C#), em vez de métodos separados getFoo()/setFoo() ou os métodos mágicos menos práticos __get/__set. Isso melhora significativamente a flexibilidade e a legibilidade do código.
Antes dos Property Hooks, a lógica de get e set era assim:
negative) {
return $this->value * -1;
}
return $this->value;
}
public function setValue(int $value)
{
$this->value = abs($value);
$this->negative = $value < 0;
}
}
$example = new Intxample();
$example->setValue(-5);
print $example->getValue(); // Output: -5
Em comparação, a nova sintaxe:
negative) {
return $this->value * -1;
}
return $this->value;
}
set(int $value) {
$this->value = abs($value);
$this->negative = $value < 0;
}
}
}
$example = new Intxample();
$example->value = -5;
print $example->value; // Output: -5
Se isso realmente traz uma grande vantagem para os desenvolvedores, é questionável. Do meu ponto de vista, deixa o bloco de variáveis no início de uma classe muito mais confuso. Acho que é uma questão de gosto.