On Fri, 8 Apr 2022 at 19:07, Craig Francis <cr...@craigfrancis.co.uk> wrote:

> On Fri, 8 Apr 2022 at 18:54, Mel Dafert <m...@dafert.at> wrote:
>
>> In particular, does this propose changing user-defined functions under
>> strict_types=0 to accept null for scalar types?
>>
>
> With user defined functions, I think it's up for debate (still a draft),
> but I think those NULL's should be coerced to the specified type (as
> documented), where I don't think PHP should be doing type checking under
> strict_types=0.
>


I've updated the RFC to note that user-defined functions don't cause a
backwards compatibility issue; but I have added an example to highlight
the coercion inconstancy:

```php
function user_function(string $s, int $i, float $f, bool $b) {
  var_dump($s, $i, $f, $b);
}

user_function('1', '1', '1', '1');
  // string(1) "1" / int(1) / float(1) / bool(true)

user_function(2, 2, 2, 2);
  // string(1) "2" / int(2) / float(2) / bool(true)

user_function(3.3, 3.3, 3.3, 3.3);
  // string(3) "3.3" / int(3) / float(3.3) / bool(true)

user_function(false, false, false, false);
  // string(0) "" / int(0) / float(0) / bool(false)

user_function(NULL, NULL, NULL, NULL);
  // Uncaught TypeError x4?
```

Reply via email to