array() returns something weird

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

I am almost certain I am hitting some kind of bug. All of a sudden, array() 
stops returning an empty array and starts returning something weird. The weird 
thing behaves as NULL in most circumstances (e.g. gettype() says NULL), 
except:

	$foo=array();      // <-- weird thing returned
	$foo[]="bar";

causes "Fatal error: [] operator not supported for strings", which is different 
from the regular behavior of:

	$foo=null;
	$foo[]="bar";      // <-- $foo simply becomes an array

The problem is not limited to one place in code, and indeed before the fatal 
caused by append-assignment I get several warnings like "array_diff_key(): 
Argument #1 is not an array", where the offending argument receives a result of 
array().

The effect is not random, i.e. it always breaks identically when the same 
script processes the same data. However I was so far unable to create a 
minimal test case that triggers the bug. My script is rather involved, and 
here are some things it uses:

 - Exceptions
 - DOM to-fro SimpleXML
 - lots of multi-level output buffering

Disabling Zend Optimizer doesn't help. Disabling Zend Memory Manager is 
apparently impossible. Memory usage is below 10MB out of 128MB limit.

Any similar experiences? Ideas what to check for? Workarounds?

>From phpinfo():

PHP Version:
5.2.9 (can't easily upgrade - shared host)

System:
FreeBSD 7.1-RELEASE-p4 FreeBSD 7.1-RELEASE-p4 #0: Wed Apr 15 15:48:43 UTC 2009  
amd64

Configure Command:
'./configure' '--enable-bcmath' '--enable-calendar' '--enable-dbase' '--enable-
exif' '--enable-fastcgi' '--enable-force-cgi-redirect' '--enable-ftp' '--
enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-
maintainer-zts' '--enable-mbstring' '--enable-pdo=shared' '--enable-safe-mode' 
'--enable-soap' '--enable-sockets' '--enable-ucd-snmp-hack' '--enable-wddx' 
'--enable-zend-multibyte' '--enable-zip' '--prefix=/usr' '--with-bz2' '--with-
curl=/opt/curlssl/' '--with-curlwrappers' '--with-freetype-dir=/usr/local' '--
with-gd' '--with-gettext' '--with-imap=/opt/php_with_imap_client/' '--with-
imap-ssl=/usr/local' '--with-jpeg-dir=/usr/local' '--with-libexpat-
dir=/usr/local' '--with-libxml-dir=/opt/xml2' '--with-libxml-dir=/opt/xml2/' 
'--with-mcrypt=/opt/libmcrypt/' '--with-mhash=/opt/mhash/' '--with-mime-magic' 
'--with-mysql=/usr/local' '--with-mysql-sock=/tmp/mysql.sock' '--with-
mysqli=/usr/local/bin/mysql_config' '--with-openssl=/usr/local' '--with-
openssl-dir=/usr/local' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' 
'--with-pgsql=/usr/local' '--with-pic' '--with-png-dir=/usr/local' '--with-
pspell' '--with-snmp' '--with-sqlite=shared' '--with-tidy=/opt/tidy/' '--with-
ttf' '--with-xmlrpc' '--with-xpm-dir=/usr/local' '--with-xsl=/opt/xslt/' '--
with-zlib' '--with-zlib-dir=/usr'

Thanks in advance,
Szczepan Holyszewski

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux