⊗ppSpOtAC 83 of 83 menu

Optimering van omskakeling na 'n skikking in PHP

Dit is nie altyd nodig om 'n string te breek in 'n skikking nie, om iets daarmee te doen.

Kom ons kyk na 'n voorbeeld. In die volgende voorbeeld toets die outeur van die kode of die syfer 3 in die string voorkom:

<?php $str = '12345'; $arr = explode('', $str); // breek in 'n skikking if (in_array(3, $arr)) { echo 'is daar'; } else { echo 'nie daar nie'; } ?>

Die outeur is goed - gebruik PHP se ingeboude funksies in plaas daarvan om sy egen "workarounds" te skryf.

Maar die kode is steeds nie optimaal nie: daar is nie 'n behoefte om die string in 'n skikking te breek nie, want daar is 'n gereed funksie strpos wat soektog in 'n string doen:

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

Hoekom is dit sleg om hier in 'n skikking te breek? Omdat, eerste, dit vereis dat die CPU bronne spandeer om dit in 'n skikking te breek, tweedens, die gevolglike skikking sal ruimte in die RAM gebruik (en dit sal meer ruimte wees as wat die string self gebruik).

Die moreel: moenie 'n string in 'n skikking breek as daar 'n manier is om dit nie te doen nie.

In die volgende kode draai 'n programmeerder die karakters van die string in omgekeerde volgorde. Optimaliseer die oplossing van hierdie programmeerder:

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

In die volgende kode soek 'n iemand die aantal woorde in die teks. Optimaliseer die oplossing van hierdie programmeerder:

<?php $str = 'aaa bbb ccc'; // 'n lang string echo count(explode(' ', $str)); ?>
Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp