|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2004-10-05 23:35 UTC] justmanj at msu dot edu
Description:
------------
zend.ze1_compatibility_mode when turned on doesn't honor the same methodlogy as 4.x when passing a class for some parameters - it passes by reference in functions like array_push();
this behavior was not in 4.3.x, and the only workaround is the clone keyword, which should be added in the 4.3.x tree for backwards compatability.
Reproduce code:
---------------
<?
class x { };
$first = new x;
$second = $first;
$container = array();
array_push($container, $first);
$first->first = " im in the first";
print_r($first);
print_r($second);
print_r($container);
Expected result:
----------------
x Object
(
[first] => im in the first
)
x Object
(
)
Array
(
[0] => x Object
(
)
)
Actual result:
--------------
x Object
(
[first] => im in the first
)
x Object
(
)
Array
(
[0] => x Object
(
[first] => im in the first
)
)
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 01 15:00:01 2025 UTC |
tested with: PHP 5.1.0-dev (cli) (built: Apr 13 2005 08:33:33) Copyright (c) 1997-2005 The PHP Group Zend Engine v2.1.0-dev, Copyright (c) 1998-2004 Zend Technologies zend.ze1_compatibility_mode => On => On produces: C:\php5-win32-latest>php c:\web\ze1_test.php x Object ( [first] => im in the first ) x Object ( ) Array ( [0] => x Object ( [first] => im in the first ) ) which is not the design of php4 j