From 46b8084748bb2664bbd3c9ec2e8b767b907f590e Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Fri, 23 Nov 2007 13:25:35 +0000 Subject: [PATCH] - Add another LSB test --- Zend/tests/lsb_018.phpt | 95 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100755 Zend/tests/lsb_018.phpt 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=== -- 2.40.0