Browse Source
- MFH: Fixed bug #44899 (__isset usage changes behavior of empty()) (patch by Etienne Kneuss)
PECL
- MFH: Fixed bug #44899 (__isset usage changes behavior of empty()) (patch by Etienne Kneuss)
PECL
3 changed files with 95 additions and 8 deletions
@ -0,0 +1,38 @@ |
|||
--TEST-- |
|||
Bug #44899 (__isset usage changes behavior of empty()) |
|||
--FILE-- |
|||
<?php |
|||
|
|||
class myclass |
|||
{ |
|||
private $_data = array(); |
|||
|
|||
function __construct($data) |
|||
{ |
|||
$this->_data = $data; |
|||
} |
|||
|
|||
function __isset($field_name) |
|||
{ |
|||
return isset($this->_data[$field_name]); |
|||
} |
|||
} |
|||
|
|||
$arr = array('foo' => ''); |
|||
|
|||
$myclass = new myclass($arr) ; |
|||
|
|||
echo (isset($myclass->foo)) ? 'isset' : 'not isset'; |
|||
echo "\n"; |
|||
echo (empty($myclass->foo)) ? 'empty' : 'not empty'; |
|||
echo "\n"; |
|||
echo ($myclass->foo) ? 'not empty' : 'empty'; |
|||
echo "\n"; |
|||
|
|||
?> |
|||
--EXPECTF-- |
|||
isset |
|||
empty |
|||
|
|||
Notice: Undefined property: myclass::$foo in %s on line %d |
|||
empty |
|||
@ -0,0 +1,43 @@ |
|||
--TEST-- |
|||
Bug #44899 (__isset usage changes behavior of empty()) - 2 |
|||
--FILE-- |
|||
<?php |
|||
|
|||
class myclass |
|||
{ |
|||
private $_data = array(); |
|||
|
|||
function __construct($data) |
|||
{ |
|||
$this->_data = $data; |
|||
} |
|||
|
|||
function __isset($field_name) |
|||
{ |
|||
return isset($this->_data[$field_name]); |
|||
} |
|||
|
|||
function __get($var) { |
|||
var_dump(empty($this->_data[$var])); |
|||
return $this->_data[$var]; |
|||
} |
|||
} |
|||
|
|||
$arr = array('foo' => ''); |
|||
|
|||
$myclass = new myclass($arr) ; |
|||
|
|||
echo (isset($myclass->foo)) ? 'isset' : 'not isset'; |
|||
echo "\n"; |
|||
echo (empty($myclass->foo)) ? 'empty' : 'not empty'; |
|||
echo "\n"; |
|||
echo ($myclass->foo) ? 'not empty' : 'empty'; |
|||
echo "\n"; |
|||
|
|||
?> |
|||
--EXPECT-- |
|||
isset |
|||
bool(true) |
|||
empty |
|||
bool(true) |
|||
empty |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue