php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #46614 Extended MySQLi class gives incorrect empty() result (works in PHP_5_2 !)
Submitted: 2008-11-19 13:25 UTC Modified: 2009-08-27 12:42 UTC
Votes:2
Avg. Score:4.0 ± 1.0
Reproduced:0 of 0 (0.0%)
From: sander dot vink at procurios dot nl Assigned: mysql
Status: Closed Package: MySQLi related
PHP Version: 5.3CVS-2008-11-19 (snap) OS: *
Private report: No CVE-ID:
 [2008-11-19 13:25 UTC] sander dot vink at procurios dot nl
Description:
------------
When an empty() call is done within a class that extends the MySQLi class, an incorrect result is provided.

Reproduce code:
---------------
class Foo extends MySQLi
{
	protected $fooData = array();
	
	public function isEmpty()
	{
		$this->fooData[] = 'Bar';
		return empty($this->fooData);
	}
}

$Foo = new Foo('localhost', 'root', '', 'test');
$isEmpty = $Foo->isEmpty();

var_dump($isEmpty);

Expected result:
----------------
bool(false)

Actual result:
--------------
bool(true)

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2008-11-19 23:12 UTC] jani@php.net
You set $this->fooData[]to contain 'Bar' -> it's not empty -> returns 
true..what's the bug..?
 [2008-11-20 08:14 UTC] sander dot vink at procurios dot nl
Yes, exactly, it is not empty. However, I return the result of empty() ( not !empty() ) which should be false, since the array actually contains data.
 [2008-11-21 13:05 UTC] jani@php.net
Ah, I tested with PHP 5.2CVS and it works as expected. So this is PHP_5_3 (and propably HEAD) issue only.
 [2009-08-27 12:41 UTC] svn@php.net
Automatic comment from SVN on behalf of andrey
Revision: http://svn.php.net/viewvc/?view=revision&revision=287806
Log: Fix for bug#46614 Extended MySQLi class gives incorrect empty() result
 [2009-08-27 12:42 UTC] andrey@php.net
This bug has been fixed in SVN.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.

The fix will be in 5.3.1
 
PHP Copyright © 2001-2014 The PHP Group
All rights reserved.
Last updated: Sat Apr 19 12:01:52 2014 UTC