Reply to Does passing an uninitialized array variable initialize it? (PHP 5)

Your name:

Reply:


Posted by google2006 on 07/30/07 20:56

The following code never sees the end of the array, and generates an
out of memory error under PHP5 (both CLI and Apache module) :

while (isset($rank[$i])) {
$rank[$i] = trim($rank[$i++]);
}

Moving the post increment to a separate line fixes this issue:

while (isset($rank[$i])) {
$rank[$i] = trim($rank[$i]);
$i++;
}

For some reason PHP5 appears to be initializing $rank[($i+1)] each
time, perhaps because it's passing the value to trim(). The subsequent
isset() test on that element succeeds so the loop continues
indefinitely as each new element is initialized.

It works as expected under PHP4, stopping once it hits the end of the
array. I can't find any documentation which hints at any change to the
handling of uninitialized variables which caused this code to break.

Thanks in advance for any help...

[Back to original message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация