Re: [RFC] Make empty() a Variadic

From: Date: Sat, 21 Feb 2015 15:36:27 +0000
Subject: Re: [RFC] Make empty() a Variadic
References: 1 2  Groups: php.internals 
Request: Send a blank email to internals+get-83397@lists.php.net to get a copy of this message
On 21 February 2015 at 07:20, Markus Fischer <markus@fischer.name> wrote: > On 21.02.15 06:11, Thomas Punt wrote: > From the RFC: >> Also, it will make empty() more inline with the not-too-disimillar isset(), > > Here I disagree. > > I would have assumed from the start that empty() would only return true > if *all* of the entries are empty, i.e. AND things together. The problem stems from the fact that 'empty' is a falsy statement as it returns true when something is not set. Combining two positive results in another positive statement. Combining two negative statements results in a positive statement.....except when it doesn't. You always have to think about what is the correct way to combine them. From the RFC: > In PHP, it is not uncommon to see conditionals consisting of multiple empty() > invocations. This is evident by simply browsing through some popular open > source projects This is subjective opinion, but at least two of those code examples are horrible. In particular the phpBB code shows the problem of using compound 'falsy' statements: return !( empty($this->config['jab_enable']) || empty($this->config['jab_host']) || empty($this->config['jab_username']) || empty($this->config['jab_password']) || !@extension_loaded('xml') ); Seriously, a double-negative at the end of a five piece statement that combines falsy things? Making it easier to write bad (imo) code does not seem a good reason for a change. cheers Dan

« previous php.internals (#83397) next »