"php est le meilleur langage du monde", il ne cesse d'avancer ! L'équipe PHP a actuellement publié la version PHP 8.1.0 RC 5, et la prochaine version sera la sixième et dernière version candidate (RC 6), qui sera publiée dans un avenir proche. Laissez-moi vous présenter les 8 nouveaux changements importants de PHP8.1, jetons-y un coup d'œil d'abord ! Nouveau dans les initialiseurs)
enum Status
{
case draft;
case published;
case archived;
public function color(): string
{
return match($this)
{
Status::draft => 'grey',
Status::published => 'green',
Status::archived => 'red',
};
}
}
class PostData
{
public function __construct(
public readonly string $title,
public readonly string $author,
public readonly string $body,
public readonly DateTimeImmutable $createdAt,
public readonly PostState $state,
) {}
}
class PostStateMachine
{
public function __construct(
private State $state = new Draft(),
) {
}
}
Appelables de première classe$fiber = new Fiber(function (): void {
$valueAfterResuming = Fiber::suspend('after suspending');
// …
});
$valueAfterSuspending = $fiber->start();
$fiber->resume('after resuming');
Types d'intersection purs (Types d'intersection purs)$array1 = ["a" => 1];
$array2 = ["b" => 2];
$array = ["a" => 0, ...$array1, ...$array2];
var_dump($array); // ["a" => 1, "b" => 2]
function foo(int $a, int $b) { /* … */ } $foo = foo(...); $foo(a: 1, b: 2);