bug44899.phpt 640 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. --TEST--
  2. Bug #44899 (__isset usage changes behavior of empty())
  3. --FILE--
  4. <?php
  5. class myclass
  6. {
  7. private $_data = array();
  8. function __construct($data)
  9. {
  10. $this->_data = $data;
  11. }
  12. function __isset($field_name)
  13. {
  14. return isset($this->_data[$field_name]);
  15. }
  16. }
  17. $arr = array('foo' => '');
  18. $myclass = new myclass($arr) ;
  19. echo (isset($myclass->foo)) ? 'isset' : 'not isset';
  20. echo "\n";
  21. echo (empty($myclass->foo)) ? 'empty' : 'not empty';
  22. echo "\n";
  23. echo ($myclass->foo) ? 'not empty' : 'empty';
  24. echo "\n";
  25. ?>
  26. --EXPECTF--
  27. isset
  28. empty
  29. Warning: Undefined property: myclass::$foo in %s on line %d
  30. empty