On 02.12.2020 at 17:34, Silvio Sparapano wrote:
> Hello,
> IMHO it’s only a declaration issue.
>
> In other terms, if documentation of strlen says:
>
> strlen ( string $string ) : int
>
> then I mean that $string MUST be a string, and return value MUST be an int.
>
> But then we found that if $string is null, zero is returned. If $string is an array, null is returned …
> We simply need consistency between how a function is documented, and how it really works.
> I mean, it may also be convenient for strlen to accept a parameter type other than string (such as null), but it must be well documented.
It is reasonably well documented:
| If the parameters given to a function are not what it expects, such as
| passing an array where a string is expected, the return value of the
| function is undefined. In this case it will likely return NULL but
| this is just a convention, and cannot be relied upon.
[1] <https://www.php.net/manual/en/functions.internal.php>
Regards,
Christoph