Bug #75836 [Com]: fwrite() should accept null for chunk size
Edit report at https://bugs.php.net/bug.php?id=75836&edit=1
ID: 75836
Comment by: spam2 at rhsoft dot net
Reported by: kelunik@php.net
Summary: fwrite() should accept null for chunk size
Status: Open
Type: Bug
Package: Streams related
PHP Version: 7.2.1
Block user comment: N
Private report: N
New Comment:
bad idea - the param is defined as int which means in weak mode it will be casted and NULL becomes 0
(what you don't want) while with strict_types it is a fatal error to pass NULL - that is the
expected behavior from each and every function and should stay consistent
Previous Comments:
------------------------------------------------------------------------
[2018-01-18 23:50:18] cmb@php.net
> How would that be a BC break?
Presently, passing NULL as third parameter to fwrite() causes
nothing to be written. If I understand you correctly, you want
that to change so that the whole $string is written instead.
------------------------------------------------------------------------
[2018-01-18 20:09:33] kelunik@php.net
How would that be a BC break?
------------------------------------------------------------------------
[2018-01-18 17:13:52] cmb@php.net
> fwrite() should accept null for chunk size
That would constitute a BC break, though.
> for an example where this is annoying.
$written = @\fwrite($stream, $data, $chunkSize ?: $length);
------------------------------------------------------------------------
[2018-01-17 18:57:25] daverandom@php.net
Additional filesystem functions that have the same or similar problems:
Optional $context arg emits warning when explicit NULL is passed to all of: copy(), mkdir(),
rename(), rmdir(), unlink()
fgetss(), fgets() - NULL passed to $length is cast to int(0), emits warning
file_get_contents() - NULL passed to $maxlen results in empty string returned
------------------------------------------------------------------------
[2018-01-17 16:48:47] kelunik@php.net
Description:
------------
This is a follow-up of bug #74719, which didn't address fwrite().
See https://github.com/amphp/byte-stream/blob/1b0b8daed484b070a9ee329ba78675288d291558/lib/ResourceOutputStream.php#L69-L74
for an example where this is annoying.
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=75836&edit=1
Thread (7 messages)