Re: [RFC] [Vote] Type Guards for Classes

From: Date: Fri, 17 May 2024 08:34:42 +0000
Subject: Re: [RFC] [Vote] Type Guards for Classes
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-123329@lists.php.net to get a copy of this message
On Thu, May 16, 2024, at 22:31, Patrik Václavek wrote: > This feature aims to simplify and standardize the process of verifying that a variable is an > instance of a specific class, enhancing code readability and reducing boilerplate code. > > Currently, in PHP, to ensure that a variable is an instance of a specific class, developers > need to use the instanceof operator and manually throw an exception > if the check fails. This results in repetitive boilerplate code scattered throughout the codebase. A > new syntax, (ClassName) $variable, is proposed to streamline this > process by performing an instanceof check and throwing a TypeError > if the variable is not an instance of the specified class. I view variables changing types to be an anti-pattern. Instead if adding type guards, I would rather see this problem solved by having typed local variables. This ensures that a variable always holds a specific type, avoiding the need of repetitive scattered type guards. Working with variables would then be the same as working with class properties. They could be typed or untyped. Also, I see the need for type guards as a symptom of bad composition. Mostly methods that are too large would benefit. If a method is decomposed into smaller methods the use of parameter and return type checks it's unlikely there is need for additional type guards.

« previous php.internals (#123329) next »