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”

  1. error414 on August 29th, 2008 12:04

    nemelo by se $pole jmenovat $a. Asi preklep.

  2. admin on August 29th, 2008 16:05

    Jasne, opraveno. Diky za upozorneni.

  3. error414 on September 30th, 2008 11:27

    ted me napadlo ze to pujde takto

    $vystup[(int)$i]=Array($i,$b);

    ale mas recht ze neinizializovane promene jsou zlo

  4. admin on April 21st, 2009 8:26

    [@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).

Váš komentář: