1--TEST-- 2ZE2 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 8class Circle { 9 function draw() { 10 echo "Circle\n"; 11 } 12} 13 14class Square { 15 function draw() { 16 print "Square\n"; 17 } 18} 19 20function ShapeFactoryMethod($shape) { 21 switch ($shape) { 22 case "Circle": 23 return new Circle(); 24 case "Square": 25 return new Square(); 26 } 27} 28 29ShapeFactoryMethod("Circle")->draw(); 30ShapeFactoryMethod("Square")->draw(); 31 32?> 33--EXPECT-- 34Circle 35Square 36