Hello Internals, during last PHPDay in Verona I discussed this topic with some of you and it was suggested to me to send an email here.
Here is an example to describe my problem. Imagine a simple DTO like this: class MyDTO{ public ?int $propA; public ?int $propB; } Imagine that a Form processor or a generic mapper fill some of these fields with a null value: $dto = new MyDTO(); $dto->propA = null; Sometimes we use DTOs to handle PATCH requests and not all the properties are mapped with a value. In a scenario like this, "null" is often a valid value. At this point, I need a way to find if a property was initialized or not but unfortunately "isset" is not a solution. When I write: echo isset($dto->propA) ? 'init' : 'not-init'; I get "not-init" since isset returns true only if the variable is set and different from null. Full example: https://3v4l.org/4cCj0 Is the language missing a clean way to check if a property is initialized or not? Is there any solution to this problem? The only alternative is using reflection but I need to pass the property name as a string losing static analysis. Proposing a new language syntax like "is_initialized($dto->propA)" can be an interesting solution? Thank you in advance. Luigi Cardamone Backend developer Italy