Învăţăm PHP: Despre şiruri (iteratori, formulare)


PHP este un limbaj de programare dinamic. De aici şi bune şi rele. Ce poate fi bun? Apar în timp funcţii noi, se corectează buguri vechi… aşa că PHP creşte şi devine tot mai puternic. Pe de altă parte orice modificări înseamnă că un cod mai vechi ar putea să nu meargă cu o versiune nouă de PHP. Fiţi liniştiţi: funcţiile vechi sunt păstrate lungi perioade doar de dragul compatibilităţii. Astfel problema mai întâlnită nu este rularea unui cod vechi pe o versiune nouă, ci a unuia nou pe o versiune veche de PHP. De exemplu mai jos am să vă prezint o metodă de parcurgere a unui array (şir, tablou) introdusă doar în PHP 5. Dacă vreţi să programaţi ceva şi să meargă şi sub PHP 4 evitaţi să folosiţi iteratorul pentru array-uri.

Multe servicii de hosting oferă însă sau direct PHP 5 sau la alegere PHP 4 sau 5. Ca să prim spre viitor haideţi să vedem cum lucrează acest iterator. Pornim de la un şir asociativ şi apoi creăm iteratorul (reţineţi şi acel new dar şi acel ArrayIterator ca sintaxă obligatorie). Primul pas – de siguranţă – este să punem iteratorul să o ia de la început (rewind() – linia 8). După iniţializare acolo este, dar reţineţi că el se „deplasează”. Cât timp nu a ajuns la sfârşit, testarea cu valid() va returna true. Ca să treacă la următorul element folosim next(). De dragul clarificării am scris acelaşi lucru cu două bucle: WHILE şi FOR. Rezultatul îl puteţi intui, dar dacă vreţi să îl vedeţi, mergeţi aici.

[PHP]$bunuri = array(
„mere” => „Ana”,
„struguri” => „Mircea”,
„banane” => „Flaviu”,
„portocala” => „Felicia”
);
$iterator = new ArrayIterator($bunuri);
$iterator->rewind();
while($iterator->valid()) {
echo $iterator->current().’ are ‘.$iterator->key().’.
‘;
$iterator->next();
}
echo ‘

sau similar

‘;
for($iterator->rewind();$iterator->valid();$iterator->next())
echo $iterator->current().’ are ‘.$iterator->key().’.
‘;[/PHP]

Am terminat un subiect din acest articol. Al doilea asupra căruia aş vrea să mă opresc este preluarea de şiruri din formulare. Nu mă refer la un câmp text în care este pus un array, ci la transformarea unei selecţii multiple într-o listă. Haideţi să ne distrăm puţin (distracţie de programatori, nu vă aşteptaţi la altceva). Să zicem că vrem să facem unul dintre acele jocuri prosteşti care iau nişte date şi le „interpretează”. Noi vom construi un select multiplu într-un formular şi la name îi vom spune nu „animale” ci „animale[]” – foarte important (aşa cum intuiţi, parantezele drepte îi spun: vezi că vine un şir)! „Primirea” se face conform aşteptărilor: $animale = $_POST[‘animale’]; – doar că $animale va fi array! Da, exact ce doream. Nu mai rămâne decât să vedem dacă are elemente (altfel spunem că nu putem ‘citi’ nimic), şi să ‘intepretăm’ fiecare element al array-ului. Evident că puteţi testa online: click aici.

[PHP]

Selectati din lista (tineti apasasat CTRL) animalele care va plac.



Nu putem spune nimic despre Dvs. Sunteti misterios/misterioasa.’;
else {
echo ‘

Stim despre Dvs urmatoarele:

    ‘;
    foreach($animale as $animal)
    switch($animal){
    case „ursul brun”:
    echo ‘
  • Va place berea!
  • ‘;
    break;
    case „vulpea”:
    echo ‘

  • Va plac smecheriile!
  • ‘;
    break;
    case „cocosul”:
    echo ‘

  • Va place sa va treziti cu noaptea in cap!
  • ‘;
    break;
    case „flamingo”:
    echo ‘

  • Va place sa dansati!
  • ‘;
    break;
    case „maimuta”:
    echo ‘

  • Va place sa va… maimutariti!
  • ‘;
    break;
    }
    echo ‘

‘;
}
}
?>[/PHP]

Am încheiat o paranteză despre array-uri. Sunt nişte informaţii importante – cred eu – pentru începători. Acum putem trece la funcţii pe şiruri.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (1 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *