Annotation of embedaddon/php/tests/classes/factory_and_singleton_001.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: ZE2 factory and singleton, test 1
                      3: --SKIPIF--
                      4: <?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
                      5: --FILE--
                      6: <?php
                      7: class test {
                      8:   protected $x;
                      9: 
                     10:   static private $test = NULL;
                     11:   static private $cnt = 0;
                     12: 
                     13:   static function factory($x) {
                     14:     if (test::$test) {
                     15:       return test::$test;
                     16:     } else {
                     17:       test::$test = new test($x);
                     18:       return test::$test;
                     19:     }
                     20:   }
                     21: 
                     22:   protected function __construct($x) {
                     23:     test::$cnt++;
                     24:     $this->x = $x;
                     25:   }
                     26: 
                     27:   static function destroy() {
                     28:     test::$test = NULL;
                     29:   }
                     30: 
                     31:   protected function __destruct() {
                     32:        test::$cnt--;
                     33:   }
                     34: 
                     35:   public function get() {
                     36:     return $this->x;
                     37:   }
                     38: 
                     39:   static public function getX() {
                     40:     if (test::$test) {
                     41:       return test::$test->x;
                     42:     } else {
                     43:       return NULL;
                     44:     }
                     45:   }
                     46:   
                     47:   static public function count() {
                     48:     return test::$cnt;
                     49:   }
                     50: }
                     51: 
                     52: echo "Access static members\n";
                     53: var_dump(test::getX());
                     54: var_dump(test::count());
                     55: 
                     56: echo "Create x and y\n";
                     57: $x = test::factory(1);
                     58: $y = test::factory(2);
                     59: var_dump(test::getX());
                     60: var_dump(test::count());
                     61: var_dump($x->get());
                     62: var_dump($y->get());
                     63: 
                     64: echo "Destruct x\n";
                     65: $x = NULL;
                     66: var_dump(test::getX());
                     67: var_dump(test::count());
                     68: var_dump($y->get());
                     69: 
                     70: echo "Destruct y\n";
                     71: $y = NULL;
                     72: var_dump(test::getX());
                     73: var_dump(test::count());
                     74: 
                     75: echo "Destruct static\n";
                     76: test::destroy();
                     77: var_dump(test::getX());
                     78: var_dump(test::count());
                     79: 
                     80: echo "Done\n";
                     81: ?>
                     82: --EXPECT--
                     83: Access static members
                     84: NULL
                     85: int(0)
                     86: Create x and y
                     87: int(1)
                     88: int(1)
                     89: int(1)
                     90: int(1)
                     91: Destruct x
                     92: int(1)
                     93: int(1)
                     94: int(1)
                     95: Destruct y
                     96: int(1)
                     97: int(1)
                     98: Destruct static
                     99: NULL
                    100: int(0)
                    101: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>