]> granicus.if.org Git - php/commitdiff
- Removed allow_call_time_pass_reference (Pierrick)
authorFelipe Pena <felipe@php.net>
Mon, 26 Apr 2010 00:13:34 +0000 (00:13 +0000)
committerFelipe Pena <felipe@php.net>
Mon, 26 Apr 2010 00:13:34 +0000 (00:13 +0000)
26 files changed:
NEWS
Zend/tests/magic_by_ref_010.phpt
Zend/zend.c
Zend/zend_compile.c
Zend/zend_globals.h
ext/spl/tests/array_004.phpt
ext/spl/tests/array_008.phpt
ext/spl/tests/dllist_001.phpt
ext/spl/tests/dllist_004.phpt
ext/spl/tests/dllist_005.phpt
ext/spl/tests/fixedarray_001.phpt
ext/spl/tests/fixedarray_002.phpt
ext/standard/tests/array/array_change_key_case_variation7.phpt
ext/standard/tests/array/array_key_exists_variation4.phpt
ext/standard/tests/array/array_merge_variation9.phpt
ext/standard/tests/array/array_push_variation4.phpt
ext/standard/tests/array/array_slice_variation9.phpt
ext/standard/tests/array/array_values_variation6.phpt
ext/standard/tests/array/bug33940.phpt
ext/standard/tests/array/each_variation4.phpt
ext/standard/tests/array/rsort_variation4.phpt
ext/standard/tests/general_functions/debug_zval_dump_v.phpt
main/main.c
main/php_globals.h
php.ini-development
php.ini-production

diff --git a/NEWS b/NEWS
index 12fe6f7ae928eed0697d7304f85408cfd8e9e00e..fae2f6d121914345aebf87dcfde49f88915e7769 100644 (file)
--- a/NEWS
+++ b/NEWS
 - Changed session.entropy_file to default to /dev/urandom or /dev/arandom if either
   is present at compile time. (Rasmus)
 
-- Removed legacy features: (Kalle)
-  . define_syslog_variables ini option and its associated function.
-  . highlight.bg ini option.
-  . import_request_variables().
-  . register_globals.
-  . register_long_arrays ini option.
+- Removed legacy features:
+  . define_syslog_variables ini option and its associated function. (Kalle)
+  . highlight.bg ini option. (Kalle)
+  . import_request_variables(). (Kalle)
+  . register_globals. (Kalle)
+  . allow_call_time_pass_reference. (Pierrick)
+  . register_long_arrays ini option. (Kalle)
   . Session bug compatibility mode (session.bug_compat42 and 
-    session.bug_compat_warn ini options).
+    session.bug_compat_warn ini options). (Kalle)
   . session_is_registered(), session_register() and session_unregister() 
-    functions.
-  . y2k_compliance ini option.
+    functions. (Kalle)
+  . y2k_compliance ini option. (Kalle)
        
 ?? ??? 20??, PHP 5.3.3
 - Upgraded bundled PCRE to version 8.01. (Ilia)
index 0a45fb91137b6d612f5abe4a75000d02e4f2263b..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,30 +0,0 @@
---TEST--
-passing arguments by ref to a method handled by __call()
---INI--
-allow_call_time_pass_reference=1
---FILE--
-<?php
-
-class Foo {
-    function __call($method, $args)
-    {
-        print $args[0]."\n";
-        $args[0] = 5;
-        print $args[0]."\n";
-        return true;
-    }
-}
-
-$v = 'str';
-$o = new Foo();
-$o->test(&$v);
-
-var_dump($v);
-
-echo "Done\n";
-?>
---EXPECTF--    
-str
-5
-int(5)
-Done
index bd48e522230f6756879b4c439154fbd39d130f46..0fbe847d8061b6e65822bd0c086fac2bf6756d94 100644 (file)
@@ -442,12 +442,10 @@ static FILE *zend_fopen_wrapper(const char *filename, char **opened_path TSRMLS_
 #ifdef ZTS
 static zend_bool asp_tags_default                = 0;
 static zend_bool short_tags_default              = 1;
-static zend_bool ct_pass_ref_default     = 1;
 static zend_uint compiler_options_default = ZEND_COMPILE_DEFAULT;
 #else
 # define asp_tags_default                      0
 # define short_tags_default                    1
-# define ct_pass_ref_default           1
 # define compiler_options_default      ZEND_COMPILE_DEFAULT
 #endif
 
@@ -456,7 +454,6 @@ static void zend_set_default_compile_time_values(TSRMLS_D) /* {{{ */
        /* default compile-time values */
        CG(asp_tags) = asp_tags_default;
        CG(short_tags) = short_tags_default;
-       CG(allow_call_time_pass_reference) = ct_pass_ref_default;
        CG(compiler_options) = compiler_options_default;
 }
 /* }}} */
@@ -744,7 +741,6 @@ void zend_post_startup(TSRMLS_D) /* {{{ */
 
        asp_tags_default = CG(asp_tags);
        short_tags_default = CG(short_tags);
-       ct_pass_ref_default = CG(allow_call_time_pass_reference);
        compiler_options_default = CG(compiler_options);
 
        zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC);
index 4ee458e5ccf64f6627713484ae8fd08f999911e9..9ba45f36ed26ddbd1b10cd5c23d0a221ebadccb7 100644 (file)
@@ -2335,21 +2335,21 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC) /* {{
        zend_stack_top(&CG(function_call_stack), (void **) &function_ptr_ptr);
        function_ptr = *function_ptr_ptr;
 
-       if (original_op == ZEND_SEND_REF && !CG(allow_call_time_pass_reference)) {
+       if (original_op == ZEND_SEND_REF) {
                if (function_ptr &&
                    function_ptr->common.function_name &&
                    function_ptr->common.type == ZEND_USER_FUNCTION &&
                    !ARG_SHOULD_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
-                       zend_error(E_DEPRECATED,
-                                               "Call-time pass-by-reference has been deprecated; "
-                                               "If you would like to pass it by reference, modify the declaration of %s().  "
-                                               "If you would like to enable call-time pass-by-reference, you can set "
-                                               "allow_call_time_pass_reference to true in your INI file", function_ptr->common.function_name);
+                       zend_error(E_COMPILE_ERROR,
+                                               "Call-time pass-by-reference has been removed; "
+                                               "If you would like to pass argument by reference, modify the declaration of %s().",
+                                               function_ptr->common.function_name);
                } else {
-                       zend_error(E_DEPRECATED, "Call-time pass-by-reference has been deprecated");
+                       zend_error(E_COMPILE_ERROR, "Call-time pass-by-reference has been removed");
                }
-       }
-
+               return;
+       } 
+       
        if (function_ptr) {
                if (ARG_MAY_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
                        if (param->op_type & (IS_VAR|IS_CV)) {
index 19be67d1de7448d97d465e79c860e4e077ad8a24..010a0db8e51179837bb75c4838c80ea5371c0a6f 100644 (file)
@@ -104,7 +104,6 @@ struct _zend_compiler_globals {
        zend_bool in_compilation;
        zend_bool short_tags;
        zend_bool asp_tags;
-       zend_bool allow_call_time_pass_reference;
 
        zend_declarables declarables;
 
index dd07f29820aabea300d64f0684a402dc1bbf125b..0b80e5c89f2e6d5c4c1b89ff39486ec454f3f938 100755 (executable)
@@ -1,12 +1,8 @@
 --TEST--
 SPL: ArrayIterator
---INI--
-allow_call_time_pass_reference=1
 --FILE--
 <?php
 
-echo "==Normal==\n";
-
 $arr = array(0=>0, 1=>1, 2=>2);
 $obj = new ArrayObject($arr);
 
@@ -19,66 +15,9 @@ foreach($obj as $ak=>$av) {
        }
 }
 
-echo "==UseRef==\n";
-
-$arr = array(0=>0, 1=>1, 2=>2);
-$obj = new ArrayObject(&$arr);
-
-foreach($obj as $ak=>$av) {
-       foreach($obj as $bk=>$bv) {
-               if ($ak==0 && $bk==0) {
-                       $arr[0] = "modify";
-               }
-               echo "$ak=>$av - $bk=>$bv\n";
-       }
-}
-
-echo "==Modify==\n";
-
-$arr = array(0=>0, 1=>1, 2=>2);
-$obj = new ArrayObject(&$arr);
-
-foreach($obj as $ak=>$av) {
-       foreach($obj as $bk=>$bv) {
-               if ($ak==0 && $bk==0) {
-                       $arr[0] = "modify";
-               }
-               echo "$ak=>$av - $bk=>$bv\n";
-       }
-}
-
-echo "==Delete==\n";
-
-$arr = array(0=>0, 1=>1, 2=>2);
-$obj = new ArrayObject(&$arr);
-
-foreach($obj as $ak=>$av) {
-       foreach($obj as $bk=>$bv) {
-               if ($ak==1 && $bk==1) {
-                       unset($arr[1]);
-               }
-               echo "$ak=>$av - $bk=>$bv\n";
-       }
-}
-
-echo "==Change==\n";
-
-$arr = array(0=>0, 1=>1, 2=>2);
-$obj = new ArrayObject(&$arr);
-
-foreach($obj as $ak=>$av) {
-       foreach($obj as $bk=>$bv) {
-               if ($ak==1 && $bk==1) {
-                       $arr = NULL;
-               }
-               echo "$ak=>$av - $bk=>$bv\n";
-       }
-}
-
 echo "Done\n";
 ?>
 --EXPECTF--
-==Normal==
 0=>0 - 0=>0
 0=>0 - 1=>1
 0=>0 - 2=>2
@@ -88,54 +27,4 @@ echo "Done\n";
 2=>2 - 0=>0
 2=>2 - 1=>1
 2=>2 - 2=>2
-==UseRef==
-0=>0 - 0=>0
-0=>0 - 1=>1
-0=>0 - 2=>2
-1=>1 - 0=>modify
-1=>1 - 1=>1
-1=>1 - 2=>2
-2=>2 - 0=>modify
-2=>2 - 1=>1
-2=>2 - 2=>2
-==Modify==
-0=>0 - 0=>0
-0=>0 - 1=>1
-0=>0 - 2=>2
-1=>1 - 0=>modify
-1=>1 - 1=>1
-1=>1 - 2=>2
-2=>2 - 0=>modify
-2=>2 - 1=>1
-2=>2 - 2=>2
-==Delete==
-0=>0 - 0=>0
-0=>0 - 1=>1
-0=>0 - 2=>2
-1=>1 - 0=>0
-1=>1 - 1=>1
-
-Notice: main(): ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sarray_004.php on line %d
-1=>1 - 0=>0
-1=>1 - 2=>2
-
-Notice: main(): ArrayIterator::next(): Array was modified outside object and internal position is no longer valid in %sarray_004.php on line %d
-0=>0 - 0=>0
-0=>0 - 2=>2
-2=>2 - 0=>0
-2=>2 - 2=>2
-==Change==
-0=>0 - 0=>0
-0=>0 - 1=>1
-0=>0 - 2=>2
-1=>1 - 0=>0
-1=>1 - 1=>1
-
-Notice: main(): ArrayIterator::current(): Array was modified outside object and is no longer an array in %sarray_004.php on line %d
-
-Notice: main(): ArrayIterator::valid(): Array was modified outside object and is no longer an array in %sarray_004.php on line %d
-
-Notice: main(): ArrayIterator::current(): Array was modified outside object and is no longer an array in %sarray_004.php on line %d
-
-Notice: main(): ArrayIterator::valid(): Array was modified outside object and is no longer an array in %sarray_004.php on line %d
 Done
index 61c7abd7c6721cbab34d86bb9e8164ce469797cd..e7a618dda5e64844fad2b8996f48ffd2babdcef4 100755 (executable)
@@ -1,12 +1,8 @@
 --TEST--
 SPL: ArrayIterator and foreach reference
---INI--
-allow_call_time_pass_reference=1
 --FILE--
 <?php
 
-echo "==Normal==\n";
-
 $arr = array(0=>0, 1=>1, 2=>2);
 $obj = new ArrayObject($arr);
 
@@ -19,35 +15,10 @@ foreach($obj as $ak=>&$av) {
        }
 }
 
-echo "==UseRef==\n";
-
-$arr = array(0=>0, 1=>1, 2=>2);
-$obj = new ArrayObject(&$arr);
-
-foreach($obj as $ak=>&$av) {
-       foreach($obj as $bk=>&$bv) {
-               if ($ak==0 && $bk==0) {
-                       $bv = "modify";
-               }
-               echo "$ak=>$av - $bk=>$bv\n";
-       }
-}
-
 ?>
 ===DONE===
 <?php exit(0); ?>
 --EXPECTF--
-==Normal==
-0=>modify - 0=>modify
-0=>modify - 1=>1
-0=>modify - 2=>2
-1=>1 - 0=>modify
-1=>1 - 1=>1
-1=>1 - 2=>2
-2=>2 - 0=>modify
-2=>2 - 1=>1
-2=>2 - 2=>2
-==UseRef==
 0=>modify - 0=>modify
 0=>modify - 1=>1
 0=>modify - 2=>2
index 2a2156188345fbbba7961bb67dbba225497ae602..e27f23ca44a3784cf5c96de9539b2e66a27754a7 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 SPL: DoublyLinkedList: std operations
---INI--
-allow_call_time_pass_reference=1
 --FILE--
 <?php
 $dll = new SplDoublyLinkedList();
@@ -20,18 +18,10 @@ try {
 // data consistency
 $a = 2;
 $dll->push($a);
-$a = 3;
-$dll->push(&$a);
-$a = 4;
-echo $dll->pop()."\n";
 echo $dll->pop()."\n";
 
 $a = 2;
 $dll->unshift($a);
-$a = 3;
-$dll->unshift(&$a);
-$a = 4;
-echo $dll->shift()."\n";
 echo $dll->shift()."\n";
 
 // peakable
@@ -61,9 +51,7 @@ echo count($dll)."\n";
 --EXPECTF--
 Exception: Can't pop from an empty datastructure
 Exception: Can't shift from an empty datastructure
-3
 2
-3
 2
 2
 1
index 0b20f6eb6a2c4b55c6aa1bdba3a7467c33ed9cec..44d9611fca0bf66b126cd8546006259acb4d431d 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 SPL: DoublyLinkedList: Stacks
---INI--
-allow_call_time_pass_reference=1
 --FILE--
 <?php
 $stack = new SplStack();
@@ -20,10 +18,6 @@ try {
 // data consistency
 $a = 2;
 $stack->push($a);
-$a = 3;
-$stack->push(&$a);
-$a = 4;
-echo $stack->pop()."\n";
 echo $stack->pop()."\n";
 
 // peakable
@@ -55,7 +49,6 @@ echo count($stack)."\n";
 --EXPECTF--
 Exception: Can't pop from an empty datastructure
 Exception: Can't shift from an empty datastructure
-3
 2
 2
 [2]
index f95cedd1facc674c1446f964b74ef5db6fa5b9d8..33161ba17d01c4fde2d131064acdf1bc7e4c1e6a 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 SPL: DoublyLinkedList: Queues
---INI--
-allow_call_time_pass_reference=1
 --FILE--
 <?php
 $queue = new SplQueue();
@@ -20,10 +18,6 @@ try {
 // data consistency
 $a = 2;
 $queue->enqueue($a);
-$a = 3;
-$queue->enqueue(&$a);
-$a = 4;
-echo $queue->dequeue()."\n";
 echo $queue->dequeue()."\n";
 
 // peakable
@@ -56,7 +50,6 @@ echo count($queue)."\n";
 Exception: Can't shift from an empty datastructure
 Exception: Can't shift from an empty datastructure
 2
-3
 2
 [1]
 [2]
index 39e1bc9f6c365352d1fbfb8754e24699572f2154..8276333e1032fa64de7a35417c5cf6023a9a5d00 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 SPL: FixedArray: std operations
---INI--
-allow_call_time_pass_reference=1
 --FILE--
 <?php
 $a = new SplFixedArray(0);
index 9b9c0ac315db0aa4dfca92779e4b1459d34cbe46..534d41f184d6933a8697f79f859e86329e04a4bc 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 SPL: FixedArray: overloading
---INI--
-allow_call_time_pass_reference=1
 --FILE--
 <?php
 class A extends SplFixedArray {
index cdae8c7e05c56a8b850afca938f87c78c45d0c31..8cbc23a12f1c5ecb51fab4fe4749f1c0ce61e66d 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 Test array_change_key_case() function : usage variations - referenced variables
---INI--
-allow_call_time_pass_reference=on
 --FILE--
 <?php
 /* Prototype  : array array_change_key_case(array $input [, int $case])
@@ -28,12 +26,6 @@ var_dump($input);
 echo "Referenced:\n";
 var_dump($new_input);
 
-echo "\n-- \$input is an array passed by reference --\n";
-echo "Result:\n";
-var_dump(array_change_key_case(&$input, CASE_UPPER));
-echo "Original:\n";
-var_dump($input);
-
 echo "Done";
 ?>
 
@@ -68,25 +60,5 @@ array(3) {
   ["ABC"]=>
   string(3) "xyz"
 }
-
--- $input is an array passed by reference --
-Result:
-array(3) {
-  ["ONE"]=>
-  int(1)
-  ["TWO"]=>
-  int(2)
-  ["ABC"]=>
-  string(3) "xyz"
-}
-Original:
-array(3) {
-  ["one"]=>
-  int(1)
-  ["two"]=>
-  int(2)
-  ["ABC"]=>
-  string(3) "xyz"
-}
 Done
 
index edc39269a56c6f1e85deca66913a0e776708725a..84dfeb93731cbcca49915b26a951b09a809842cd 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 Test array_key_exists() function : usage variations - referenced variables
---INI--
-allow_call_time_pass_reference=on
 --FILE--
 <?php
 /* Prototype  : bool array_key_exists(mixed $key, array $search)
@@ -22,13 +20,6 @@ echo "\n-- \$search is a reference to \$array --\n";
 $search = &$array;
 var_dump(array_key_exists('one', $search));
 
-echo "\n-- \$key is a referenced variable --\n";
-$key = 'two';
-var_dump(array_key_exists(&$key, $array));
-
-echo "\n-- Both arguments are referenced variables --\n";
-var_dump(array_key_exists(&$key, &$array));
-
 echo "Done";
 ?>
 
@@ -37,10 +28,4 @@ echo "Done";
 
 -- $search is a reference to $array --
 bool(true)
-
--- $key is a referenced variable --
-bool(true)
-
--- Both arguments are referenced variables --
-bool(true)
 Done
index e42e292827840c4e44dd2eefd7ee1b0cfab09c2f..69e0401a0e6de55c1b4612cc150efe404d38cc5b 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 Test array_merge() function : usage variations - referenced variables
---INI--
-allow_call_time_pass_reference=on
 --FILE--
 <?php
 /* Prototype  : array array_merge(array $arr1, array $arr2 [, array $...])
@@ -33,9 +31,6 @@ echo "\n-- Change \$val2 --\n";
 var_dump(array_merge($arr1, $arr2));
 var_dump(array_merge($arr2, $arr1));
 
-echo "\n-- Merge an array and a reference to the first array --\n";
-var_dump(array_merge($arr2, &$arr2));
-
 echo "Done";
 ?>
 
@@ -101,14 +96,4 @@ array(6) {
   [2]=>
   &string(3) "baz"
 }
-
--- Merge an array and a reference to the first array --
-array(3) {
-  ["key1"]=>
-  string(4) "val1"
-  ["key2"]=>
-  string(4) "val2"
-  ["key3"]=>
-  string(4) "val3"
-}
 Done
index f8f89042aa517c8ffa00906c9b2a47114ee86ca8..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1,110 +0,0 @@
---TEST--
-Test array_push() function : usage variations - referenced variables
---INI--
-allow_call_time_pass_reference=on
---FILE--
-<?php
-/* Prototype  : int array_push(array $stack, mixed $var [, mixed $...])
- * Description: Pushes elements onto the end of the array 
- * Source code: ext/standard/array.c
- */
-
-/*
- * Test array_push when:
- * 1. passed referenced variables as $var arguments
- * 2. $var argument is a reference to $stack argument
- */
-
-echo "*** Testing array_push() : usage variations ***\n";
-
-$var1 = 'a';
-$var2 = 'b';
-$var3 = 'c';
-$var4 = 'x';
-$var5 = 'y';
-$var6 = 'z';
-
-$array = array(1, 2, 3);
-
-echo "\n-- Pass array_push referenced varialbes as \$var arguments --\n";
-var_dump(array_push($array, &$var1, &$var2, &$var3, &$var4, &$var5, &$var6));
-var_dump($array);
-
-echo "\n-- Pass \$var argument which is a reference to \$stack argument --\n";
-var_dump(array_push($array, &$array));
-var_dump($array);
-
-echo "Done";
-?>
---EXPECTF--
-*** Testing array_push() : usage variations ***
-
--- Pass array_push referenced varialbes as $var arguments --
-int(9)
-array(9) {
-  [0]=>
-  int(1)
-  [1]=>
-  int(2)
-  [2]=>
-  int(3)
-  [3]=>
-  &string(1) "a"
-  [4]=>
-  &string(1) "b"
-  [5]=>
-  &string(1) "c"
-  [6]=>
-  &string(1) "x"
-  [7]=>
-  &string(1) "y"
-  [8]=>
-  &string(1) "z"
-}
-
--- Pass $var argument which is a reference to $stack argument --
-int(10)
-array(10) {
-  [0]=>
-  int(1)
-  [1]=>
-  int(2)
-  [2]=>
-  int(3)
-  [3]=>
-  &string(1) "a"
-  [4]=>
-  &string(1) "b"
-  [5]=>
-  &string(1) "c"
-  [6]=>
-  &string(1) "x"
-  [7]=>
-  &string(1) "y"
-  [8]=>
-  &string(1) "z"
-  [9]=>
-  &array(10) {
-    [0]=>
-    int(1)
-    [1]=>
-    int(2)
-    [2]=>
-    int(3)
-    [3]=>
-    &string(1) "a"
-    [4]=>
-    &string(1) "b"
-    [5]=>
-    &string(1) "c"
-    [6]=>
-    &string(1) "x"
-    [7]=>
-    &string(1) "y"
-    [8]=>
-    &string(1) "z"
-    [9]=>
-    *RECURSION*
-  }
-}
-Done
index 030d4bd73a4adc92d820c80cde030d2f88490671..7ae9238d47c9d2a8a8557fd4d5e267de865db247 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 Test array_slice() function : usage variations - referenced variables
---INI--
-allow_call_time_pass_reference=on
 --FILE--
 <?php
 /* Prototype  : array array_slice(array $input, int $offset [, int $length [, bool $preserve_keys]])
@@ -29,12 +27,6 @@ echo "-- Change \$val2 (\$preserve_keys = TRUE) --\n";
 $val2 = 'hello, world';
 var_dump(array_slice($input, 1, 2, true));
 
-echo "\n-- Pass array by reference --\n";
-$new_input = array (1, 2, 3);
-var_dump(array_slice(&$new_input, 1));
-echo "-- Check passed array: --\n";
-var_dump($new_input);
-
 echo "Done";
 ?>
 
@@ -55,21 +47,4 @@ array(2) {
   [1]=>
   &string(5) "three"
 }
-
--- Pass array by reference --
-array(2) {
-  [0]=>
-  int(2)
-  [1]=>
-  int(3)
-}
--- Check passed array: --
-array(3) {
-  [0]=>
-  int(1)
-  [1]=>
-  int(2)
-  [2]=>
-  int(3)
-}
 Done
index e565150760ab2266e98f7602d283c5d97d8ec5b7..8c4479ca6ffb1ee70bcd3d2741ae97d7160e9c1b 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 Test array_values() function : usage variations - Referenced variables
---INI--
-allow_call_time_pass_reference=on
 --FILE--
 <?php
 /* Prototype  : array array_values(array $input)
@@ -29,10 +27,6 @@ echo "Change \$val2 and check result of array_values():\n";
 $val2 = 'deux';
 var_dump($result1);
 
-echo "\n-- Pass \$input argument by reference --\n";
-$array = array(1, 2, 3);
-var_dump($result2 = array_values(&$array));
-
 echo "Done";
 ?>
 
@@ -57,14 +51,4 @@ array(3) {
   [2]=>
   &string(5) "three"
 }
-
--- Pass $input argument by reference --
-array(3) {
-  [0]=>
-  int(1)
-  [1]=>
-  int(2)
-  [2]=>
-  int(3)
-}
 Done
index a6d1ff8358be223d6294086f54ab117b59c48489..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100755 (executable)
@@ -1,63 +0,0 @@
---TEST--
-Bug #33940 (array_map() fails to pass by reference when called recursively)
---INI--
-allow_call_time_pass_reference=1
-error_reporting=4095
---FILE--
-<?php
-function ref_map(&$item) {
-    if(!is_array($item)) {
-        $item = 1;
-        return 2;
-    } else {
-        $ret = array_map('ref_map', &$item);
-        return $ret;
-    }
-}
-
-$a = array(array(0), 0);
-$ret = array_map('ref_map', $a);
-echo 'Array: '; print_r($a);
-echo 'Return: '; print_r($ret);
-$a = array(array(0), 0);
-$ret = array_map('ref_map', &$a);
-echo 'Array: '; print_r($a);
-echo 'Return: '; print_r($ret);
-?>
---EXPECTF--
-Array: Array
-(
-    [0] => Array
-        (
-            [0] => 0
-        )
-
-    [1] => 0
-)
-Return: Array
-(
-    [0] => Array
-        (
-            [0] => 2
-        )
-
-    [1] => 2
-)
-Array: Array
-(
-    [0] => Array
-        (
-            [0] => 1
-        )
-
-    [1] => 1
-)
-Return: Array
-(
-    [0] => Array
-        (
-            [0] => 2
-        )
-
-    [1] => 2
-)
index 6ac57a736e5e8ec1e679012673575a2e5a2a09ce..535ae297d164b8f0809296d4f20f93d661dd6d2f 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 Test each() function : usage variations - Referenced variables
---INI--
-allow_call_time_pass_reference=on
 --FILE--
 <?php
 /* Prototype  : array each(array $arr)
@@ -29,14 +27,6 @@ var_dump( each($arr1) );
 var_dump( each($arr1) );
 var_dump( each($arr1) );
 
-
-echo "\n-- Pass an array by reference to each(): --\n";
-$arr2 = array('zero', 'one', 'two');
-
-var_dump( each(&$arr2) );
-echo "-- Check original array: --\n";
-var_dump($arr2);
-
 echo "Done";
 ?>
 
@@ -66,25 +56,4 @@ array(4) {
   int(0)
 }
 bool(false)
-
--- Pass an array by reference to each(): --
-array(4) {
-  [1]=>
-  string(4) "zero"
-  ["value"]=>
-  string(4) "zero"
-  [0]=>
-  int(0)
-  ["key"]=>
-  int(0)
-}
--- Check original array: --
-array(3) {
-  [0]=>
-  string(4) "zero"
-  [1]=>
-  string(3) "one"
-  [2]=>
-  string(3) "two"
-}
 Done
index 4cab1a933402e190726681d837ab17ca26d8d2ff..226284d329a3f96608d74a70739272a67ccb4010 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 Test rsort() function : usage variations - referenced variables
---INI--
-allow_call_time_pass_reference=on
 --FILE--
 <?php
 /* Prototype  : bool rsort(array &$array_arg [, int $sort_flags])
@@ -35,11 +33,6 @@ $temp_array = &$unsorted_numerics;
 var_dump( rsort($temp_array, SORT_REGULAR) );
 var_dump( $temp_array);
 
-echo "\n-- 'flag' = SORT_NUMERIC --\n";
-$temp_array = $unsorted_numerics;
-var_dump( rsort(&$temp_array, SORT_NUMERIC) );
-var_dump( $temp_array);
-
 echo "Done";
 ?>
 --EXPECTF--
@@ -66,15 +59,4 @@ array(3) {
   [2]=>
   &int(33)
 }
-
--- 'flag' = SORT_NUMERIC --
-bool(true)
-array(3) {
-  [0]=>
-  &int(555)
-  [1]=>
-  &int(100)
-  [2]=>
-  &int(33)
-}
 Done
index a01e592628261cef428fce8f0ab7da963a75dd61..82ee2a63d57c4aa24b3f962b09ea3f668bf22dc8 100644 (file)
@@ -1,7 +1,5 @@
 --TEST--
 Test debug_zval_dump() function : usage variations
---INI--
-allow_call_time_pass_reference=1
 --FILE--
 <?php
 /* Prototype: void debug_zval_dump ( mixed $variable );
@@ -115,7 +113,6 @@ $counter = 1;
 foreach( $misc_values as $value ) {
   echo "-- Iteration $counter --\n";
   debug_zval_dump( $value );
-  debug_zval_dump( &$value );
   $counter++;
 }
 
@@ -190,26 +187,18 @@ long(10) refcount(2)
 *** Testing debug_zval_dump() on miscelleneous input arguments ***
 -- Iteration 1 --
 NULL refcount(3)
-&NULL refcount(2)
 -- Iteration 2 --
 NULL refcount(3)
-&NULL refcount(2)
 -- Iteration 3 --
 NULL refcount(1)
-&NULL refcount(2)
 -- Iteration 4 --
 NULL refcount(1)
-&NULL refcount(2)
 -- Iteration 5 --
 string(7) "TRUE123" refcount(3)
-&string(7) "TRUE123" refcount(2)
 -- Iteration 6 --
 string(9) "123string" refcount(3)
-&string(9) "123string" refcount(2)
 -- Iteration 7 --
 string(9) "string123" refcount(3)
-&string(9) "string123" refcount(2)
 -- Iteration 8 --
 string(10) "NULLstring" refcount(3)
-&string(10) "NULLstring" refcount(2)
 Done
index f47bf0b7a2ce72f2e1f8efd7ec091663ae5019ec..41496d26cf94fafbbc40335ca0f4fcd7caa8f06d 100644 (file)
@@ -432,7 +432,6 @@ PHP_INI_BEGIN()
        PHP_INI_ENTRY_EX("highlight.keyword",           HL_KEYWORD_COLOR,       PHP_INI_ALL,    NULL,                   php_ini_color_displayer_cb)
        PHP_INI_ENTRY_EX("highlight.string",            HL_STRING_COLOR,        PHP_INI_ALL,    NULL,                   php_ini_color_displayer_cb)
 
-       STD_PHP_INI_BOOLEAN("allow_call_time_pass_reference",   "1",    PHP_INI_SYSTEM|PHP_INI_PERDIR,          OnUpdateBool,   allow_call_time_pass_reference, zend_compiler_globals,  compiler_globals)
        STD_PHP_INI_BOOLEAN("asp_tags",                         "0",            PHP_INI_SYSTEM|PHP_INI_PERDIR,          OnUpdateBool,                   asp_tags,                               zend_compiler_globals,  compiler_globals)
        STD_PHP_INI_ENTRY_EX("display_errors",          "1",            PHP_INI_ALL,            OnUpdateDisplayErrors,  display_errors,                 php_core_globals,       core_globals, display_errors_mode)
        STD_PHP_INI_BOOLEAN("display_startup_errors",   "0",    PHP_INI_ALL,            OnUpdateBool,                   display_startup_errors, php_core_globals,       core_globals)
@@ -2066,7 +2065,7 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
                struct {
                        const long error_level;
                        const char *phrase;
-                       const char *directives[6]; /* Remember to change this if the number of directives change */
+                       const char *directives[7]; /* Remember to change this if the number of directives change */
                } directives[] = {
                        {
                                E_CORE_WARNING, 
@@ -2088,6 +2087,7 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
                                        "register_globals", 
                                        "register_long_arrays", 
                                        "zend.ze1_compatibility_mode", 
+                                       "allow_call_time_pass_reference",
                                        NULL
                                }
                        }
index 6619bb30c947716c7b66bb9b99cb0daa1b7cbac3..09615738c845abdbb1a40fd74e39c173a9999b38 100644 (file)
@@ -60,7 +60,6 @@ struct _php_core_globals {
 
        zend_bool safe_mode;
 
-       zend_bool allow_call_time_pass_reference;
        zend_bool implicit_flush;
 
        long output_buffering;
index d316622dd8c2166f09dda09e3a9833890dad1d12..cd716d0d02a921ade10760b440bb62b2eb81d4b6 100644 (file)
 ; Please see the actual settings later in the document for more details as to why
 ; we recommend these changes in PHP's behavior.
 
-; allow_call_time_pass_reference
-;   Default Value: On
-;   Development Value: Off
-;   Production Value: Off
-
 ; display_errors
 ;   Default Value: On
 ;   Development Value: On
@@ -310,20 +305,6 @@ unserialize_callback_func =
 ; are decoded with unserialize, the data will remain the same.
 serialize_precision = 100
 
-; This directive allows you to enable and disable warnings which PHP will issue
-; if you pass a value by reference at function call time. Passing values by
-; reference at function call time is a deprecated feature which will be removed
-; from PHP at some point in the near future. The acceptable method for passing a
-; value by reference to a function is by declaring the reference in the functions
-; definition, not at call time. This directive does not disable this feature, it
-; only determines whether PHP will warn you about it or not. These warnings
-; should enabled in development environments only.
-; Default Value: On (Suppress warnings)
-; Development Value: Off (Issue warnings)
-; Production Value: Off (Issue warnings)
-; http://php.net/allow-call-time-pass-reference
-allow_call_time_pass_reference = Off
-
 ; Safe Mode
 ; http://php.net/safe-mode
 safe_mode = Off
index 87c8df28887bfa03bec8e993c006fe8ac01069c3..2f6c1c01d1b96c1e086474da17cb99e696314aee 100644 (file)
 ; Please see the actual settings later in the document for more details as to why
 ; we recommend these changes in PHP's behavior.
 
-; allow_call_time_pass_reference
-;   Default Value: On
-;   Development Value: Off
-;   Production Value: Off
-
 ; display_errors
 ;   Default Value: On
 ;   Development Value: On
@@ -310,20 +305,6 @@ unserialize_callback_func =
 ; are decoded with unserialize, the data will remain the same.
 serialize_precision = 100
 
-; This directive allows you to enable and disable warnings which PHP will issue
-; if you pass a value by reference at function call time. Passing values by
-; reference at function call time is a deprecated feature which will be removed
-; from PHP at some point in the near future. The acceptable method for passing a
-; value by reference to a function is by declaring the reference in the functions
-; definition, not at call time. This directive does not disable this feature, it
-; only determines whether PHP will warn you about it or not. These warnings
-; should enabled in development environments only.
-; Default Value: On (Suppress warnings)
-; Development Value: Off (Issue warnings)
-; Production Value: Off (Issue warnings)
-; http://php.net/allow-call-time-pass-reference
-allow_call_time_pass_reference = Off
-
 ; Safe Mode
 ; http://php.net/safe-mode
 safe_mode = Off