Return to factory_001.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes |
1.1 ! misho 1: --TEST-- ! 2: ZE2 factory objects ! 3: --SKIPIF-- ! 4: <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> ! 5: --FILE-- ! 6: <?php ! 7: ! 8: class Circle { ! 9: function draw() { ! 10: echo "Circle\n"; ! 11: } ! 12: } ! 13: ! 14: class Square { ! 15: function draw() { ! 16: print "Square\n"; ! 17: } ! 18: } ! 19: ! 20: function ShapeFactoryMethod($shape) { ! 21: switch ($shape) { ! 22: case "Circle": ! 23: return new Circle(); ! 24: case "Square": ! 25: return new Square(); ! 26: } ! 27: } ! 28: ! 29: ShapeFactoryMethod("Circle")->draw(); ! 30: ShapeFactoryMethod("Square")->draw(); ! 31: ! 32: ?> ! 33: --EXPECT-- ! 34: Circle ! 35: Square