Re: Redundant isset() check?

From: Date: Tue, 04 Nov 2014 12:37:12 +0000
Subject: Re: Redundant isset() check?
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-324034@lists.php.net to get a copy of this message
Dotan Cohen wrote: > Consider the situation where an application will use a different set > of PDO connection details depending on which version of the site is > running: production, dev, qa, cron job, etc. Considering that > $_SERVER['DOCUMENT_ROOT'] may not be set, is this check sufficient: > > if ( !isset( !isset($connection_details[$_SERVER['DOCUMENT_ROOT']]) ) { > > Or would it be preferable to first check that > $_SERVER['DOCUMENT_ROOT'] is set before relying on it: > > if ( !isset($_SERVER['DOCUMENT_ROOT']) || > !isset($connection_details[$_SERVER['DOCUMENT_ROOT']]) ) { > > The TRUE case of this if clause will simply use the default connection details: > $connection_details[0] Then you might consider using the following: $index = isset($_SERVER['DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : 0; do_something_with($connection_details[$index]); BTW: after upgrading to PHP 7 you could use the null coalesce operator[1]: $index = $_SERVER['DOCUMENT_ROOT'] ?? 0; [1] <https://wiki.php.net/rfc/isset_ternary> -- Christoph M. Becker

« previous php.general (#324034) next »