Req->Doc #42608 [Opn->Ver]: Example #660 (filter_input_array) is wrong

From: Date: Sat, 05 May 2018 16:00:21 +0000
Subject: Req->Doc #42608 [Opn->Ver]: Example #660 (filter_input_array) is wrong
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-15650@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=42608&edit=1 ID: 42608 Updated by: cmb@php.net Reported by: phpbugs dot 20 dot zsh at spamgourmet dot com Summary: Example #660 (filter_input_array) is wrong -Status: Open +Status: Verified -Type: Feature/Change Request +Type: Documentation Problem Package: Filter related Operating System: Irrelevant PHP Version: 5.2.4 -Assigned To: +Assigned To: cmb Block user comment: N Private report: N New Comment: Changing the behavior of filter_input_array() for cases where INPUT_* is not set would cause a BC break, and in my opinion would therefore require the RFC process[1], since filter_input_array() works this way since its introduction[2]. Thus, I'm changing to doc bug. It is also noteworthy to mention that filter_input_array() returns FALSE, if the input array is not populated, and the FILTER_NULL_ON_FAILURE flag is set in the $definition array[3]. Finally, indeed the example is seriously wrong. [1] <https://wiki.php.net/rfc/howto> [2] <https://3v4l.org/8qjcU> [3] <https://3v4l.org/N9uDe> Previous Comments: ------------------------------------------------------------------------ [2012-02-27 14:38:46] datibbaw@php.net The following patch has been added/updated: Patch Name: consistent_filter_input_array Revision: 1330353526 URL: https://bugs.php.net/patch-display.php?bug=42608&patch=consistent_filter_input_array&revision=1330353526 ------------------------------------------------------------------------ [2012-02-22 13:29:09] datibbaw@php.net Fast forward to 2012, this is still wrong IMHO Possible bugs: 1) documentation problem; the return value is defined as an array or false in case of failure - when the respective INPUT_XXX is not populated, it returns null; clearly not expected according to the documentation. 2) wrong behaviour in the code; if INPUT_XXX is not populated, I would expect the return value to be this: array_fill_keys(array_keys($definition), null) ------------------------------------------------------------------------ [2009-10-08 03:02:44] ChadFulton at gmail dot com Although this is a very old bug, it seems to me that the poster is incorrect; I suspect the problem is that the poster attempted to set the $_POST array during runtime (e.g. $_POST = array( ... ); ), and filter_input_array does not allow runtime modification $_POST, $_GET, etc. ------------------------------------------------------------------------ [2007-09-10 11:04:44] phpbugs dot 20 dot zsh at spamgourmet dot com Description: ------------ The example will not output the array shown below the example code -- any undefined variable will cause filter_input_array() to return (so the output would be "NULL"). You'll notice I've classified this as a change request rather than a documentation problem, for the expected (and described ("Return Values")) behavior in example #660 makes WAY more sense. Reproduce code: --------------- http://www.php.net/filter_input_array ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=42608&edit=1

« previous php.doc.bugs (#15650) next »