|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2002-07-31 09:53 UTC] michiwalter at gmx dot de
Summary:
Initialization of a static hash array variable in a function crashes PHP under certain circumstances.
Crash reproducable on these platforms:
- Windows 2000/IIS/PHP 4.2.1 (CGI)
- Windows 2000/Apache 1.3.24/PHP 4.2.0
- Linux deathrow 2.4.9-34/Apache 1.3.26/PHP 4.2.2
Test Script:
<?php
define('A', 'A');
define('B', 'B');
function test()
{
// Apparently only crashes under the following circumstances:
// 1. The key has to be a define().
// 2. The value has to contain a string.
// 3. The hash has to be a static function member.
// 4. The hash has to contain at least 2 entries.
static $test=array(
A=>'A',
B=>'B'
);
}
test();
?>
Further Information:
error/access_log don't contain any information about the crash (what about an SEH handler:).
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2026 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 07 20:00:02 2026 UTC |
Cannot very this with PHP 4.3.0-dev-200207300000 on Compaq Tru64 .... B=>'B' ); var_dump($test); } gives back NULL. So it does'nt crash, but the result seems not to be the expected one.with PHP 4.3.0-dev (cli), Zend Engine v2.0.0-alpha2, built from CVS, on OS X, I don't see a crash. Instead, with debug enabled, I get a memory leak message unless I call the function at least once: % php -r 'define("BAR",1); function foo() { static $x = array(BAR=>"bar"); var_dump($x);}' /usr/local/book/php4/Zend/zend_language_scanner.l(1169) : Freeing 0x0054B610 (4 bytes), script=- % php -r 'define("BAR",1); function foo() { static $x = array(BAR=>"bar"); var_dump($x);} foo();' array(1) { [1]=> string(3) "bar" }