⊗ppSpOtAC 83 of 83 menu

Optimalizácia prevodu na pole v PHP

Nie vždy je potrebné rozdeliť reťazec na pole, aby sme s ním niečo urobili.

Pozrime sa na príklad. V nasledujúcom príklade autor kódu kontroluje, či sa v reťazci nachádza číslica 3:

<?php $str = '12345'; $arr = explode('', $str); // rozdelíme na pole if (in_array(3, $arr)) { echo 'je'; } else { echo 'nie'; } ?>

Autor je šikovný - používa vstavané funkcie PHP, namiesto toho, aby písal vlastné kôli.

Ale kód stále nie je optimálny: tu nie je potrebné rozdeliť reťazec na pole, pretože existuje hotová funkcia strpos, ktorá vykonáva vyhľadávanie v reťazci:

<?php $str = '12345'; if (strpos(str, 3) !== false) { echo 'je'; } else { echo 'nie'; } ?>

Prečo je tu rozdelenie na pole zlé? Pretože po prvé, na rozdelenie na pole sa míňajú prostriedky procesora, po druhé, výsledné pole bude zaberať miesto v operačnej pamäti (a to bude väčšie, ako miesto, ktoré zaberá samotný reťazec).

Ponaučenie: nerozdeľujte reťazec na pole, ak existuje spôsob, ako sa tomu vyhnúť.

V nasledujúcom kóde nejaký programátor otáča znaky reťazca v opačnom poradí. Optimalizujte riešenie tohto programátora:

<?php $str = '123345'; $rev = implode('', array_reverse(explode('', $str))); echo $rev; // vypíše '54321' ?>

V nasledujúcom kóde niekto hľadá počet slov v texte. Optimalizujte riešenie tohto programátora:

<?php $str = 'aaa bbb ccc'; // nejaký dlhý reťazec echo count(explode(' ', $str)); ?>
Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť