PHP – zase jedna past na začátečníky
Odesláno v August 29, 2008 | Kategorie PHP, Programování | 4 Comments
Pokud máte projekt v PHP, kterému se věnujete už několik let, zřejmě se nevyhnete také “nánosům minulosti”.
Tohle je jedno z nejčastějších a nejčastěji porušovaných pravidel při programování v PHP a je třeba je tesat do kamene:
OPRAVDU INICIALIZUJTE VŠECHNY PROMĚNNÉ.
<?
$pole=Array('nula','jedna','dvě', 'tři');
foreach($pole as $b){
$vystup[$i]=Array($i,$b);
$i++;
}
echo $vystup[0];
?>
A co je na tom špatně?
Pokud nemám inicializovanou proměnnou $i, nebude mít $i počáteční hodnotu “0”, ale jenom “”, což platí i pro asociativní pole. Tudíž počáteční prvek pole není uložen v $vystup[0], ale $vystup[”].
Nojo, jednoduché. Pokud víte, co a kde hledat.
Komentáře
4 Responses to “PHP – zase jedna past na začátečníky”
Váš komentář:
nemelo by se $pole jmenovat $a. Asi preklep.
Jasne, opraveno. Diky za upozorneni.
ted me napadlo ze to pujde takto
$vystup[(int)$i]=Array($i,$b);
ale mas recht ze neinizializovane promene jsou zlo
[@error414] A to je právě ten problém, tyhle chyby se pak velmi špatně hledají. Určitě bych neradil to řešit přetypováním (int).