Annotation of embedaddon/php/Zend/tests/bug32322.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: Bug #32322 (Return values by reference broken( using self::),example singleton instance)
! 3: --INI--
! 4: error_reporting=4095
! 5: --FILE--
! 6: <?php
! 7: class test
! 8: {
! 9: private static $instance = null;
! 10: private $myname = '';
! 11:
! 12: private function __construct( $value = '' )
! 13: {
! 14: echo "New class $value created \n";
! 15: $this -> myname = $value;
! 16: }
! 17: private function __clone() {}
! 18: static public function getInstance()
! 19: {
! 20: if ( self::$instance == null )
! 21: {
! 22: self::$instance = new test('Singleton1');
! 23: }
! 24: else {
! 25: echo "Using old class " . self::$instance -> myname . "\n";
! 26: }
! 27: return self::$instance;
! 28: }
! 29: static public function getInstance2()
! 30: {
! 31: static $instance2 = null;
! 32: if ( $instance2 == null )
! 33: {
! 34: $instance2 = new test('Singleton2');
! 35: }
! 36: else {
! 37: echo "Using old class " . $instance2 -> myname . "\n";
! 38: }
! 39: return $instance2;
! 40: }
! 41: public function __destruct()
! 42: {
! 43: if ( defined('SCRIPT_END') )
! 44: {
! 45: echo "Class " . $this -> myname . " destroyed at script end\n";
! 46: } else {
! 47: echo "Class " . $this -> myname . " destroyed beforce script end\n";
! 48: }
! 49: }
! 50: }
! 51: echo "Try static instance inside class :\n";
! 52: $getCopyofSingleton = test::getInstance();
! 53: $getCopyofSingleton = null;
! 54: $getCopyofSingleton = &test::getInstance();
! 55: $getCopyofSingleton = null;
! 56: $getCopyofSingleton = test::getInstance();
! 57: echo "Try static instance inside function :\n";
! 58: $getCopyofSingleton2 = test::getInstance2();
! 59: $getCopyofSingleton2 = null;
! 60: $getCopyofSingleton2 = &test::getInstance2();
! 61: $getCopyofSingleton2 = null;
! 62: $getCopyofSingleton2 = test::getInstance2();
! 63:
! 64: define('SCRIPT_END',1);
! 65: ?>
! 66: --EXPECTF--
! 67: Try static instance inside class :
! 68: New class Singleton1 created
! 69: Using old class Singleton1
! 70:
! 71: Strict Standards: Only variables should be assigned by reference in %sbug32322.php on line 49
! 72: Using old class Singleton1
! 73: Try static instance inside function :
! 74: New class Singleton2 created
! 75: Using old class Singleton2
! 76:
! 77: Strict Standards: Only variables should be assigned by reference in %sbug32322.php on line 55
! 78: Using old class Singleton2
! 79: Class Singleton1 destroyed at script end
! 80: Class Singleton2 destroyed at script end
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>