⊗ppSpOtAC 83 of 83 menu

PHPда массивга айлантиришни оптимизациялаш

Ҳар доим сатрни массивга ажратиш шарт эмас, уни бирон нарса билан қилиш учун.

Келинг, мисол билан кўрайлик. Куйидаги мисолда код муаллифи сатрда 3 рақами бор-йўқлигини текширмокда:

<?php $str = '12345'; $arr = explode('', $str); // массивга ажратамиз if (in_array(3, $arr)) { echo 'бор'; } else { echo 'йўқ'; } ?>

Муаллиф яхши иш қилган - ўз костылларини ёзиш ўрнига PHPнинг ички функцияларидан фойдаланган.

Аммо код баробари оптимал эмас: бу ерда сатрни массивга ажратишга ҳожат йўқ, чунки strpos функцияси мавжуд бўлиб, у сатр бўйлаб излаш амалиётини бажаради:

<?php $str = '12345'; if (strpos(str, 3) !== false) { echo 'бор'; } else { echo 'йўқ'; } ?>

Нега бу ерда массивга ажратиш ёмон? Чунки, биринчи навбатда, массивга ажратиш учун процессор ресурслари сарфланади, иккинчидан, олинган массив оператив хотирада жой олади (ва у сатр ўзи эгаллаган жойдан кўра кўпроқ жойни эгаллаши мумкин).

Одоб: агар қилмасликнинг имкони бўлса, сатрни массивга ажратмангиз.

Куйидаги кодда бир программачи сатрнинг символларини тескари тартибда айлантирмокда. Ушбу программачининг ечимини оптимизацияланг:

<?php $str = '123345'; $rev = implode('', array_reverse(explode('', $str))); echo $rev; // '54321' чиқади ?>

Куйидаги кодда бир программачи матндаги сўзлар сонини изламокда. Ушбу программачининг ечимини оптимизацияланг:

<?php $str = 'aaa bbb ccc'; // бир узун сатр echo count(explode(' ', $str)); ?>
Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш