La nueva versión de PHP introduce, entre otras cosas, Property Hooks, visibilidad asimétrica para las propiedades de clase y una nueva API HTML5 DOM.
Con los Property Hooks, se puede definir la lógica de get y set directamente en la declaración de la propiedad (similar a C#), en lugar de utilizar métodos separados getFoo()/setFoo() o los incómodos métodos mágicos __get/__set. Esto mejora considerablemente la flexibilidad y la legibilidad del código.
Antes de los Property Hooks, la lógica de get y set se veía así:
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
En comparación, la nueva sintaxis:
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
Si esto realmente supone una gran ventaja para los desarrolladores, es debatible. Desde mi punto de vista, hace que el bloque de variables al principio de una clase sea mucho menos claro. Supongo que es cuestión de gustos.