On 27 May 2022, at 07:44, Jordan LeDoux <jordan.led...@gmail.com> wrote:
> On Thu, May 26, 2022 at 5:21 AM Craig Francis <cr...@craigfrancis.co.uk> 
> wrote:
>> It sounds like you got lucky - you have a function that has a problem with 
>> NULL (but I assume it's fine with an empty string?), and during your testing 
>> you happened to pass NULL to this function. As noted before, static analysis 
>> is *considerably* better at these types of checks, because it's able check 
>> if variables *can* contain NULL. They can also perform other checks as well 
>> (important when your code seems to care about NULL vs an empty string).
> 
> 
> Nearly *all* code has a problem with null.


Erm, but it doesn't... does it?

I know I keep going on about this very simply example, but it represents a 
fairly typical style of programming PHP, and I just do not understand what the 
problem with it is:

```
$search = $request->input('q'); // Laravel, returns NULL when 'q' is not 
defined.

echo 'Results for ' . htmlspecialchars($search);
```

But forget about it, hopefully someone else can find a solution to the problem.



On 27 May 2022, at 07:44, Jordan LeDoux <jordan.led...@gmail.com> wrote:
> It very much feels like the original effort to deprecate null calls decided 
> to resolve this by saying "let's have the language help developers improve 
> their code so it doesn't have these problems in the first place", and this 
> effort is trying to resolve this by saying "let's have the language support 
> the buggy code in ways that makes it work".
> 
> At my job, my task for the last three weeks has literally been upgrading our 
> internal codebase for 8.1, and the biggest set of logs I'm dealing with is 
> exactly what you're talking about here: null's passed to internal functions. 
> Every single case I've looked at so far has been traced to code that was 
> written incorrectly, where some code somewhere was not properly guarding its 
> values, and error cases were slipping through.


For one of the teams I work with (the only one trying to make the relevant 
changes), this is also their "biggest" problem... but they are having exactly 
the opposite experience, a considerable amount of hours have gone into finding 
and changing their code, and not a single change was for code that was "written 
incorrectly" (I suppose that depends on what you think "correct" code is)... 
the other teams I work with are either suppressing this notice, or simply not 
upgrading to 8.1.

Craig

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php

Reply via email to