bug43831.phpt 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. --TEST--
  2. Bug #43831 ($this gets mangled when extending PDO with persistent connection)
  3. --EXTENSIONS--
  4. pdo_sqlite
  5. --FILE--
  6. <?php
  7. class Foo extends PDO {
  8. function __construct($dsn) {
  9. parent::__construct($dsn, null, null, array(PDO::ATTR_PERSISTENT => true));
  10. }
  11. }
  12. class Baz extends PDO {
  13. function __construct($dsn) {
  14. parent::__construct($dsn, null, null, array(PDO::ATTR_PERSISTENT => true));
  15. }
  16. }
  17. class Bar extends Baz {
  18. function quux() {
  19. echo get_class($this), "\n";
  20. $foo = new Foo("sqlite::memory:");
  21. echo get_class($this), "\n";
  22. }
  23. }
  24. $bar = new Bar("sqlite::memory:");
  25. $bar->quux();
  26. class MyPDO extends PDO {}
  27. $bar = new PDO("sqlite::memory:", null, null, array(PDO::ATTR_PERSISTENT => true));
  28. $baz = new MyPDO("sqlite::memory:", null, null, array(PDO::ATTR_PERSISTENT => true));
  29. var_dump($bar);
  30. unset($bar);
  31. var_dump($baz);
  32. var_dump($bar);
  33. ?>
  34. --EXPECTF--
  35. Bar
  36. Bar
  37. object(PDO)#%d (0) {
  38. }
  39. object(MyPDO)#%d (0) {
  40. }
  41. Warning: Undefined variable $bar in %s on line %d
  42. NULL