3v4l.org

run code in 300+ PHP versions simultaneously
<?php abstract class Person { public string $firstName {get => $this->getFirstName();} public string $lastName {get => $this->getLastName();} public string $fullName { get => $this->firstName . ' ' . $this->lastName; } abstract protected function getFirstName(): string; abstract protected function getLastName(): string; } class Mark extends Person { protected function getFirstName(): string { return 'Mark'; } protected function getLastName(): string { return 'Zukarberger'; } } $mark = new Mark(); var_dump( $mark->firstName, $mark->lastName, $mark->fullName, );
Output for 8.4.7
string(4) "Mark" string(11) "Zukarberger" string(16) "Mark Zukarberger"

preferences:
157.57 ms | 999 KiB | 7 Q