PHP 8.2 in 8 code blocks
readonly class PostData
{
public function __construct(
public string $title,
public string $author,
public string $body,
public DateTimeImmutable $createdAt,
public PostState $state,
) {}
}
$rng = $is_production
? new Random\Engine\Secure()
: new Random\Engine\Mt19937(1234);
$randomizer = new Random\Randomizer($rng);
$randomizer->shuffleString('foobar');
function alwaysFalse(): false
{
return false;
}
null
, true
, and false
as standalone types
function generateSlug((HasTitle&HasId)|null $post)
{ /* … */ }
trait Foo
{
public const CONSTANT = 1;
public function bar(): int
{
return self::CONSTANT;
}
}
function connect(
string $user,
#[\SensitiveParameter] string $password
) {
// …
}
class Post {}
$post = new Post();
$post->title = 'Name';
// Deprecated: Creation of dynamic property is deprecated
enum A: string
{
case B = 'B';
const C = [self::B->value => self::B];
}
Enum properties in const expressions
👍