factory_001.phpt 522 B

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