Jump to content
php.lv forumi

strlen vietā isset($mainigais[5])


Valcha

Recommended Posts

Sveiki! Vai kāds patiešām strlen vietā izmanto isset funkciju, lai noteiktu, vai mainīgais nav īsāks/garāks par noteikto?

 

Bet jautājums par citu - vai performancei isset arī ir efektīgāk izmantot arī stringa garuma precīzai noteikšanai. Šaubos tādēļ, ka tad ir jāveic 2 isset pārbaudes - vai ir pēdējais simbols un, vai nav nākamais.

 

// vai strings ir vienaads ar 10

Tātad if (strlen($mainigais)[10]) {ir ok }

vietaa darām tā:

if (isset ($mainigais[9]) and !isset($mainigais[10]))

 

Vispār man sāk šķist, ka tas viss ir pārākā dzīves sarežģīšana - kas būs, kads cits tādu kodu ieraudzīs? :) Vai kāds vispār tik mistiski dara? Vismaz pie mazāks/lielāks?

Paskaidrojumam, kādēļ sāku ķēpāties ar tādām lietām - sāku kodu optimizēt sākot no cikliem un turpinot ar visu iespējamo.

Link to comment
Share on other sites

Vai kāds patiešām strlen vietā izmanto isset funkciju, lai noteiktu, vai mainīgais nav īsāks/garāks par noteikto?

Protams.

 

Izmanto funkcijas tam, kam katra ir paredzēta.

 

if (isset ($mainigais[9]) and !isset($mainigais[10]))

 

Perversi. Šaubos vai arī tur ir kāds ātrdarbības ieguvums.

Link to comment
Share on other sites

Delfīn, citi:

Paskatījos netā tādus softus kā Turck MMCache, eAccelerator utt.

Tie visi kešo(varbūt arī kompilē kešam (?)) un tādā veidā dod performanci.

Bet es nesaprotu - vai tie kešo uzģenerēto HTML rezultātu vai arī pašu PHP kodu kaut kā sagatavo?

 

Jo HTML kešošana man neder, tā kā lapa randomā mainā ik uz klikšķa. Man vajag tieši PHP izpildi paātrināt. Nav jau tā, ka velkas, bet 400KB kods ielādējas no 0.5-1.5 sec, atkarībā no apmeklējuma (dienā līdz 1000 personu). Gribējās žiperīgāku. Aha - un visas funkcijas glabāju dažos failos un defaultā inklūdoju, ir index, kas to vajadzīgās funkcijas kā kontrolieris izsauc.

Negribēju veidot atsevišķu topiku tādam jautājumam..

Link to comment
Share on other sites

Calling isset() happens to be faster then strlen() because unlike strlen(), isset() is a language construct and not a function meaning that it's execution does not require function lookups and lowercase. This means you have virtually no overhead on top of the actual code that determines the string's length.

http://reinholdweber.com/?p=3 33. punkts. Bet pat ja tā ir, nez vai ir vērts par to pārāk iespringt.

Link to comment
Share on other sites

×
×
  • Create New...