>
> I'm somewhat split on this one.
> On the one hand, if I make an explicit cast, my intention is clear, make
> the best attempt to convert this string into a number. Trimming
> whitespace would be a natural consequence of that.
> On the other hand, I'm a stickler for consistency.
> On the balance of things, I would most certainly like to see leading and
> trailing whitespace render a string ineligible to be implicitly
> converted, but I'd be satisfied with (int)" 123 " converting without error.
>

I'm all for consistency between `(int)` casting, `(int $x)` function
parameter and `: int` return type, *even* if this justifies allowing
leading and trailing whitespace around numbers, if this helps adoption.
As long as we no longer allow `(int) "abc"` to return `0`, I'm game.

On the topic of errorsfor explicit casts I'd be more inclined to also
> introduce (?int) and in the event the value cannot be converted, return
> null.


If (?int) casting is introduced, I would only return null if the original
value is null. Otherwise, throw an TypeError.
This is the only consistent behaviour with scalar type hints and return
types.

Ben

Reply via email to