|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2003-01-12 15:07 UTC] jhpacker at yahoo dot com
under 4.3.0 with apache 2.0.40 I see this strange behavior with aliasing:
$foo = "Philip Johnson's \"Glass House\" remains one of the most famous residences in the world.";
$foo =& bar($foo);
print $foo;
function bar($text){
return $text;
}
outputs: Philip Johnson's "Glass House" remains one of the most famous residences in the worlh
This didn't happen under 4.2.3. Although really this was a mistake on my part (I meant to do $foo = bar($foo)) it seems like strange behavior nonetheless.
It's also strange to me that if I change
return $text;
to
return "$text";
it works as I would expect.
Patchesmt19937ar.out (last revision 2013-12-12 19:26 UTC by dree031 at yahoo dot ca)Pull Requests
Pull requests:
HistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Thu Oct 30 22:00:01 2025 UTC |
backtrace (with php-5.0.0-dev): #0 0x40749e49 in __sbrk (increment=1515880448) at ../sysdeps/generic/sbrk.c:33 #1 0x406e9d3c in __default_morecore (increment=1515880448) at ../sysdeps/generic/morecore.c:47 #2 0x406e676d in chunk_alloc (ar_ptr=0x40798520, nb=1515878480) at malloc.c:2583 #3 0x406e60bc in __libc_malloc (bytes=1515878476) at malloc.c:2817 #4 0x08256b63 in zend_mm_add_memory_block (heap=0x8333748, block_size=1515878476) at /dat/dev/php/php-5.0.0dev/Zend/zend_mm.c:143 #5 0x08256de6 in zend_mm_alloc (heap=0x8333748, size=1515878448) at /dat/dev/php/php-5.0.0dev/Zend/zend_mm.c:236 #6 0x08256e0e in zend_mm_alloc (heap=0x8333748, size=1515878448) at /dat/dev/php/php-5.0.0dev/Zend/zend_mm.c:240 #7 0x08256e0e in zend_mm_alloc (heap=0x8333748, size=1515878448) at /dat/dev/php/php-5.0.0dev/Zend/zend_mm.c:240 #8 0x08256e0e in zend_mm_alloc (heap=0x8333748, size=1515878448) at /dat/dev/php/php-5.0.0dev/Zend/zend_mm.c:240 #9 0x08256e0e in zend_mm_alloc (heap=0x8333748, size=1515878448) at /dat/dev/php/php-5.0.0dev/Zend/zend_mm.c:240 #10 0x08256e0e in zend_mm_alloc (heap=0x8333748, size=1515878448) at /dat/dev/php/php-5.0.0dev/Zend/zend_mm.c:240 #11 0x08256e0e in zend_mm_alloc (heap=0x8333748, size=1515878448) at /dat/dev/php/php-5.0.0dev/Zend/zend_mm.c:240 #12 0x08256e0e in zend_mm_alloc (heap=0x8333748, size=1515878448) (last frame continues atleast 15.000 times) DerickHere is a simular problem - it seem to be a problem with referencing to values from functions that not themselfs return reference. <?php class Person { var $name; function Person($name) { $this->name = $name; $wiefewfjwefjwefwef =& $this->getName(); // <-- this line destroys $this->name and eventually crashes apache+php } function /*&*/ getName() { return $this->name; } } $kent =& new Person('Kent'); echo '<pre>'; print_r($kent); echo '</pre>'; echo '<p><b>PersonName: "' . $kent->getName() . '"</b></p>'; ?>tests/lang/bug21600.phpt also failed on W2k server with latest win32 snap: ---- EXPECTED OUTPUT array(1) { ["foo"]=> string(4) "test" } array(1) { ["foo"]=> string(4) "test" } ---- ACTUAL OUTPUT array(1) { ["foo"]=> &string(4) "test" } array(1) { ["foo"]=> string(4) "test" } ---- FAILED