⊗ppSpOtAC 83 of 83 menu

Massiiviks teisendamise optimeerimine PHP-s

Alati ei ole vaja stringi massiiviks teisendada, et midagi sellega teha.

Vaatame näidet. Järgmises näites kontrollib koodi autor, kas stringis on number 3:

<?php $str = '12345'; $arr = explode('', $str); // teisenda massiiviks if (in_array(3, $arr)) { echo 'on'; } else { echo 'ei ole'; } ?>

Autor on tubli - kasutab PHP sisseehitatud funktsioone selle asemel, et kirjutada oma kooldunud lahendusi.

Kuid kood pole siiski optimaalne: siin pole vaja stringi massiiviks teisendada, kuna on olemas valmis funktsioon strpos, mis otsib stringist:

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

Miks on siin massiiviks teisendamine halb? Sest esiteks, massiiviks teisendamine kulutab protsessori ressursse, teiseks, saadud massiiv hõivab ruutu operatiivmälus (muide, rohkem ruutu, kui see, mida hõivab string ise).

Moraal: ärge teisendage stringi massiiviks, kui on võimalik seda mitte teha.

Järgmises koodis pöörab mingi programmeerija stringi sümbolid vastupidises järjekorras. Optimeerige selle programmeerija lahendust:

<?php $str = '123345'; $rev = implode('', array_reverse(explode('', $str))); echo $rev; // väljastab '54321' ?>

Järgmises koodis otsib keegi sõnade arvu tekstis. Optimeerige selle programmeerija lahendust:

<?php $str = 'aaa bbb ccc'; // mingi pikk string echo count(explode(' ', $str)); ?>
Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu