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

1.1       misho       1: --TEST--
                      2: Confirm difference between assigning new directly and by reference.
                      3: --INI--
                      4: error_reporting=E_ALL | E_DEPRECATED
                      5: --FILE--
                      6: <?php
                      7:   echo "Compile-time strict error message should precede this.\n";
                      8:   
                      9:   class Inc
                     10:   {
                     11:       private static $counter = 0;
                     12:       function __construct()
                     13:       {
                     14:           $this->id = ++Inc::$counter;
                     15:       }
                     16:   }
                     17:   
                     18:   $f = new Inc();
                     19:   $k =& $f;
                     20:   echo "\$f initially points to the first object:\n";
                     21:   var_dump($f);
                     22:   
                     23:   echo "Assigning new object directly to \$k affects \$f:\n";
                     24:   $k = new Inc();
                     25:   var_dump($f);
                     26:   
                     27:   echo "Assigning new object by ref to \$k removes it from \$f's reference set, so \$f is unchanged:\n";
                     28:   $k =& new Inc();
                     29:   var_dump($f);
                     30: ?>
                     31: --EXPECTF--
                     32: Deprecated: Assigning the return value of new by reference is deprecated in %s on line 23
                     33: Compile-time strict error message should precede this.
                     34: $f initially points to the first object:
                     35: object(Inc)#%d (1) {
                     36:   ["id"]=>
                     37:   int(1)
                     38: }
                     39: Assigning new object directly to $k affects $f:
                     40: object(Inc)#%d (1) {
                     41:   ["id"]=>
                     42:   int(2)
                     43: }
                     44: Assigning new object by ref to $k removes it from $f's reference set, so $f is unchanged:
                     45: object(Inc)#%d (1) {
                     46:   ["id"]=>
                     47:   int(2)
                     48: }

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