Annotation of embedaddon/php/tests/classes/new_001.phpt, revision 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>