Autor Zpráva
Daniel01
Profil
Slyšel jsem, že zavolání funkce
echo
stojí nějakej ten čas...

Jak hodně to spomalí? Co třeba něco jako...
..if (..) {
echo '</select>';
echo '<br>';
echo '<textarea wrap="soft" class="post_message" name="post_message">'.$post_message.'</textarea>';
echo '<br>';
echo '<input class="save_message" type="submit" value="Send">';

echo '</form>';

echo '</div>';
}


nebo je to lepší dělat nějak takhle?
..if (..) {
?>
</select>
<br>
<textarea wrap="soft" class="post_message" name="post_message"><?PHP echo $post_message; ?></textarea>
<br>
<input class="save_message" type="submit" value="Send">

</form>

</div>
<?PHP
}



a nebo si to uložit do proměnné a potom to jednou vypsat?

$a = "</select>
<br>
<textarea wrap="soft" class="post_message" name="post_message"><?PHP echo $post_message; ?></textarea>
<br>
<input class="save_message" type="submit" value="Send">

</form>

</div>";

if (...)
{
echo $a;
}

Co je nejrychlejší a co nejpomalejší? :-)
Alphard
Profil
tipl bych si, že třetí varianta bude nejpomalejší, první a druhá asi tak stejně, druhá možná mírně rychlejší

ale tohle nemá smysl řešit, optimalizovat se musí úplně jiné věci, např. dotazy na databázi apod.
Miloš
Profil
Alphard
optimalizovat se musí úplně jiné věci
Jasně. Ale když už jsme u těch možností, jak udělat totéž, co třeba takhle:
<?php
if (..) { ?>
</select>
<br>
<textarea wrap="soft" class="post_message" name="post_message"><?php echo "$post_message";?></textarea>
<br>
<input class="save_message" type="submit" value="Send">
</form>
</div>
<?php } else {...
}
?>
SwimX
Profil
Miloš
tvoje třetí varianta je v podstatě ob_start(); a ob_end_flush(); a někde jsem četl e je to rychlejší, protože výpis se provede jen jednou.
tiso
Profil
Daniel01 - väčšinou používam tretí spôsob v kombinácii s druhým (dynamický obsah do jednej premennej, následne výpis hlavičiek, layout stránky ako html a echo pre obsah.
Prvý spôsob je zbytočné plytvanie, nepoužívaj ho.
NoName
Profil *
Na vetsi projekty se pouzivaji sablony, kde je HTML kod od PHP uplne oddelen a echo se nikde nevyskytuje :)
Mastodont
Profil
NoName
Vyskytuje, akorát ho nevidíš. Ty šablony se totiž parsují a kešují v jiném tvaru. Ale echo (nebo print() ) tam někde být musí ...
Daniel01
Slyšel jsem, že zavolání funkce echo stojí nějakej ten čas
To jsi slyšel blbě, protože echo není funkce, ale jazykový konstrukt. Funkce je print(), ta je pomalejší než echo.
Daniel01
Profil
Ptal jsem se proto, že tu jeden člověk někde psal, že zavolání té funkce echo (jak Mastodont říká, je to jazykový konstrukt) trvá 1 sekundu... což je ohromně dlouhá doba. Ale to se mi fakt nezdá :-)
Lukas22
Profil *
Daniel01
To by mě zajímalo, kdo to psal, protože je to pěkná hovadina.
Nox
Profil
Daniel01
Však si to změř, máš funkci time, tak si ulož čas začátku skriptu a na konci to odečti a zobraz si to

Je to samozřejmě nesmysl, co si pamatuji když jsem měl zaplé měření tak skript s řadou volání funkcí, includů, ech, trval průměrně asi 0.0004 vteřiny (jestli jsem nespletl nuly; měřeno na hostingu; po přidání komunikace s db se značně zvedlo, je to celkem znát bohužel)
fuckin
Profil *
10-echo *1sek = 10 sekund ..?!
Uz logicky je to uplna blbost, nechapu jak si tomu mohl verit, ve skutecnosti to ani nebude vic nez jedna desetitisicina sekundy :)
fopen
Profil *
alebo napratat do $premenna vsetky retazce pomocou operatora .= a potom to vyplut jednym echo $premenna;
tiso
Profil
fopen - to už som písal, ale až teraz som si všimol že ten tretí spôsob je zle.
Daniel01 - správne to malo byť takto:
$a = '</select> 
<br> 
<textarea wrap="soft" class="post_message" name="post_message">'.$post_message.'</textarea> 
<br> 
<input class="save_message" type="submit" value="Send"> 

</form> 

</div>'; 

if (...) 
{ 
echo $a; 
}
fuckin
Profil *
vyjde to uplne nastejno, myslite si snad ze prirazeni netrva zadny cas serveru?
fuckin
Profil *
btw myslim si ze te chyby si vsiml kazdy, ale my jsme to brali jako priklad...
SwimX
Profil
Kdo tvrdí že echo trvá jednu sekundu? jediné co si vybavuji je toto téma: http://diskuse.jakpsatweb.cz/index.php?action=vthread&topic=94443&forum=8&page=-1#9 kde peta říká: "řekněme 1s", jsem si jist, že to ale nemyslel doslova.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: