From: Marcus Boerger Date: Fri, 23 Nov 2007 13:25:21 +0000 (+0000) Subject: - Add another LSB test X-Git-Tag: RELEASE_1_3_1~581 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c0802ee667cb0308c44515a80f6a36b8c1c6ef48;p=php - Add another LSB test --- diff --git a/Zend/tests/lsb_018.phpt b/Zend/tests/lsb_018.phpt new file mode 100755 index 0000000000..5a678d1853 --- /dev/null +++ b/Zend/tests/lsb_018.phpt @@ -0,0 +1,95 @@ +--TEST-- +ZE2 Late Static Binding and Singleton +--FILE-- +instanceId = self::$nextInstanceId++; + } + return self::$instances[$caller]; + } + public final function getInstanceId() + { + return $this->instanceId; + } + public final function identify() + { + var_dump($this); + } +} + +class Foo extends Singleton { +} + +class Bar extends Singleton { +} + +class Baz extends Bar { +} + +$u = Foo::getInstance(); +$v = Bar::getInstance(); +$w = Baz::getInstance(); + +$u->identify(); +$v->identify(); +$w->identify(); + +$x = Foo::getInstance(); +$y = Bar::getInstance(); +$z = Baz::getInstance(); + +$u->identify(); +$v->identify(); +$w->identify(); +$x->identify(); +$y->identify(); +$z->identify(); +?> +===DONE=== +--EXPECTF-- +object(Foo)#%d (1) { + ["instanceId":"Singleton":private]=> + int(0) +} +object(Bar)#%d (1) { + ["instanceId":"Singleton":private]=> + int(1) +} +object(Baz)#%d (1) { + ["instanceId":"Singleton":private]=> + int(2) +} +object(Foo)#%d (1) { + ["instanceId":"Singleton":private]=> + int(0) +} +object(Bar)#%d (1) { + ["instanceId":"Singleton":private]=> + int(1) +} +object(Baz)#%d (1) { + ["instanceId":"Singleton":private]=> + int(2) +} +object(Foo)#%d (1) { + ["instanceId":"Singleton":private]=> + int(0) +} +object(Bar)#%d (1) { + ["instanceId":"Singleton":private]=> + int(1) +} +object(Baz)#%d (1) { + ["instanceId":"Singleton":private]=> + int(2) +} +===DONE===