On Thu, Feb 12, 2015 at 10:55 AM, Thomas Punt <tp...@hotmail.co.uk> wrote:
> Hello PHP Internals! > I'd like to propose to make empty() a variadic, where if any arguments > passed in are considered empty, then false is returned - otherwise return > true. > My reasoning for wanting this feature is as follows:1)It's a common > scenario to want to check multiple expressions for empty values. I > frequently see both of the following pieces of code in projects: #1 > if (empty($a) || empty($b) || empty($c)) { // error here } > #2 if (!empty($a) && !empty($b) && !empty($c)) { // all > good! } > Both of the above examples could be shortened if empty() was made to > accept multiple arguments: #1 if (empty($a, $b, $c)) { // > error here } > #2 if (!empty($a, $b, $c)) { // all good! } > This creates more compact code that is (in my oppinion, at least) easier > to read. > Some code from real-world projects that could benefit from this > feature:WordPress (one of many): > https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/template.php#L1963OpenCart: > > https://github.com/opencart/opencart/blob/45fc863fa068d82b5280890e6466a198faa54bff/upload/admin/controller/openbay/ebay_profile.php#L128phpbb: > > https://github.com/phpbb/phpbb/blob/040d451dcca9ae54d8f4b7bdd2f231033765a8f2/phpBB/phpbb/notification/method/jabber.php#L48 > > 2)Users have brought up the want to pass in multiple arguments into > empty() before, such as: > http://stackoverflow.com/questions/4993104/using-ifempty-with-multiple-variables-phphttp://stackoverflow.com/questions/10950470/check-if-multiple-strings-are-empty > There have been solutions brought up by users to emulate a variadic empty, > like [1][2], however for unset variables their solutions simply don't work. > > So all in all, it seems like a simple feature to add for a short-hand > notation of checking multiple expressions for emptiness (which seems like a > common use-case for users). It has no BC implications and no real downsides > (at least I couldn't think of any). I have created a patch [3], and if the > feedback is positive, then I'll create an RFC and submit a PR. > Thanks,Tom > [1] http://stackoverflow.com/a/7798842/4530326[2] > http://icoded.it/php-time-saving-function-to-check-multiple-variables-for-empty-values/[3] > https://github.com/tpunt/php-src/commit/66c563829775770507147872b98320cdfcb6c51c > I'd say go ahead and draft an RFC with all the details of your proposed change, then we can discuss and vote on it. On the surface, it looks like a useful feature that wouldn't break any existing code. --Kris