Hello internals,

I propose adding first-class types to PHP, as this feature could greatly 
enhance the language, especially given PHP's unique runtime type-checking 
system. Many libraries currently rely on class strings as function parameters, 
which could be made significantly safer with native types rather than strings. 
This addition would not only streamline existing code but also create a 
foundation for future language extensions. For instance, generic classes could 
be implemented as syntactic sugar, which would translate into a class property 
holding the type parameter(s) for each instance.

A minimal viable version could allow defining types as expressions, introduce a 
new 'type' type, and expand is_a to accept those expressions like:

is_a($object, \ClassOne | \ClassTwo);

An example interface might look like:

interface ContainerInterface
{
    public function get(type $type);
}

I’d appreciate your feedback on this idea before proceeding with an RFC or 
draft PR. Please let me know your thoughts!

Best Regards,
Adam Kecskes

Reply via email to