Search code examples
phpe-notices

PHP - How can I write better code with E_NOTICES enabled?


I prefer to develop with E_NOTICES turned on, but I often have to write excess, overly verbose, code when working with array indexes. How can I write this code in less code with E_NOTICES enabled.

With notices suppressed

if ($_REQUEST['some_key'] == 'bob')
{
}

Without notices suppressed

if (array_key_exists('some_key', $_REQUEST) && $_REQUEST['some_key'] == 'bob')
{
}

Solution

  • I generally use isset(), instead of array_key_exists(), for that kind of thing ; which means using something like this :

    if (isset($_REQUEST['some_key']) && $_REQUEST['some_key'] == 'bob')
    {
    }
    


    A couple of differences :

    • isset is a language construct, and not a function -- and its faster (no function call)
    • note that isset will return false if a data is null ; array_key_exists will return true
      • But it's often not a problem, especially when dealing with GET/POST parameters
    • it shorter to write (a couple less characters)
      • and you can use something like if (isset($_REQUEST['a'], $_REQUEST['b'], $_REQUEST['c']), if necessary