Re: Type casting syntax

From: Date: Mon, 12 Jul 2021 07:03:34 +0000
Subject: Re: Type casting syntax
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-115394@lists.php.net to get a copy of this message
On Sat, Jul 10, 2021 at 11:10 AM Max Semenik <maxsem.wiki@gmail.com> wrote: > I've been thinking about extending PHP's cast syntax to user-defined types, > e.g. not only (int)$foo but also (MyClass)$foo. Currently, a T_STRING in > parentheses is always treated as a constant - would it be acceptable to > hijack this syntax when used in unary operation context, i.e. "(" T_STRING > ")" expr? If not, any other alternatives? > To answer your question without commenting on the wider discussion: No, it's not possible to use this syntax. C-style cast syntax is hopelessly ambiguous -- there's a reason why modern languages always pick a different syntax for type casts. To give a simple example, (MyClass) (CastArg) is already valid PHP syntax and performs a call to the function stored in constant MyClass, with the argument CastArg. Regards, Nikita

« previous php.internals (#115394) next »