On Fri, Jun 21, 2024 at 3:01 PM Pierre <pierre-...@processus.org> wrote: > > Le 21/06/2024 à 14:27, Robert Landers a écrit : > > This is why I wanted to work on "as" part of the pattern matching. It > isn't clear what will happen with the actual pattern matching RFC > (yet), but being able to do: > > some_function_expecting_int($_GET['foo'] as ?int); > > And how about: > > some_function_expecting_int(\intval($_GET['foo'])); > > And moreover, I'd write something like this, but: > > function validate_int(mixed $value): int { > if (null === $value || '' === $value) { > return null; > } > if (\is_int($value)) { > return $value; > } > if (\is_string($value) && \ctype_digit($value)) { > return \intval($value); > } > throw new \InvalidArgumentException("What what!"); > } > > some_function_expecting_int(validate_int($_GET['foo'] ?? null)); > > But the example might be erroneous, I see your point, nevertheless making > coercion explicit doesn't seem really relevant to me, the one point I like in > your syntax would be null handling. > > -- > > Pierre
Or... you could just turn off strict types instead of reinventing coercion that isn't nearly as well documented as the built-in coercion. Robert Landers Software Engineer Utrecht NL