File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes / clone_004.phpt
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 6 months ago) by misho
Branches: php, MAIN
CVS tags: v5_4_3elwix, v5_4_29p0, v5_4_29, v5_4_20p0, v5_4_20, v5_4_17p0, v5_4_17, v5_3_10, HEAD
php

    1: --TEST--
    2: ZE2 object cloning, 4
    3: --FILE--
    4: <?php
    5: abstract class base {
    6:   public $a = 'base';
    7: 
    8:   // disallow cloning
    9:   private function __clone() {}
   10: }
   11: 
   12: class test extends base {
   13:   public $b = 'test';
   14: 
   15:   // reenable cloning
   16:   public function __clone() {}
   17: 
   18:   public function show() {
   19: 	var_dump($this);
   20:   }
   21: }
   22: 
   23: echo "Original\n";
   24: $o1 = new test;
   25: $o1->a = array(1,2);
   26: $o1->b = array(3,4);
   27: $o1->show();
   28: 
   29: echo "Clone\n";
   30: $o2 = clone $o1;
   31: $o2->show();
   32: 
   33: echo "Modify\n";
   34: $o2->a = 5;
   35: $o2->b = 6;
   36: $o2->show();
   37: 
   38: echo "Done\n";
   39: ?>
   40: --EXPECT--
   41: Original
   42: object(test)#1 (2) {
   43:   ["b"]=>
   44:   array(2) {
   45:     [0]=>
   46:     int(3)
   47:     [1]=>
   48:     int(4)
   49:   }
   50:   ["a"]=>
   51:   array(2) {
   52:     [0]=>
   53:     int(1)
   54:     [1]=>
   55:     int(2)
   56:   }
   57: }
   58: Clone
   59: object(test)#2 (2) {
   60:   ["b"]=>
   61:   array(2) {
   62:     [0]=>
   63:     int(3)
   64:     [1]=>
   65:     int(4)
   66:   }
   67:   ["a"]=>
   68:   array(2) {
   69:     [0]=>
   70:     int(1)
   71:     [1]=>
   72:     int(2)
   73:   }
   74: }
   75: Modify
   76: object(test)#2 (2) {
   77:   ["b"]=>
   78:   int(6)
   79:   ["a"]=>
   80:   int(5)
   81: }
   82: Done

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