Autor Zpráva
Spulda
Profil *
Zdravím, nedávno jsem začal s PHP a mám drobný dotaz k příkazu echo...doufám, že
se najde někdo, kdo mi dokáže poradit.

Zajímalo by mne, jestli je rozdíl mezi těmito zápisy:

1)
<?php echo "<div class="clearfix {$float}">
<a
href="index.php?page=gallery-index&amp;gallery={$directory_name}">

<img src="{$directory_name}/img1.jpg"
alt="{$gallery_info['title']}" class="{$float}" />
</a>
</div> "; ?>

2)
<?php echo "<div class="clearfix " . $float . "">
<a href="index.php?page=gallery-index&amp;gallery=" . $directory_name
. "">
<img src="" . $directory_name . "/img1.jpg" alt="" .
$gallery_info['title'] . "" class="" . $float . "" />
</a>
</div> "; ?>

3)
<div class="clearfix <?php echo $float ?>">
<a href="index.php?page=gallery-index&amp;gallery=<?php echo
$directory_name ?>">
<img src="<?php echo $directory_name ?>/img1.jpg" alt="<?php echo
$gallery_info['title'] ?>" class="<?php echo $float ?>" />
</a>
</div>

V podstatě mi jde o to, který zápis je nejlepší, případně nejrychlejší a nebo
pokud je to jedno (jestli v podstatě záleží pouze na tom, jak to vyhovuje mne)?

Nebo existuje-li ještě nějaký jiný zápis...který by byl z hlediska jazyka PHP
lepší než výše uvedené...

Děkuji moc za rady a názory.
Pavel Strejček
Profil
všechno je popsáno zde:

http://www.php.net/manual/cs/language.types.string.php

Nejrychlejší je údajně vkládání proměnných do řetězců spojováním:

'ab' . $var . 'de'

Složené závorky {} je nutné používat jenom případech kdy to nejde zadat bez nich.
Spulda
Profil *
http://www.php.net/manual/cs/language.types.string.php


Na této stránce jsem o tom už četl, ale odpověď na můj dotaz jsem tam nenašel...všechny 3 metody by měly být správně...šlo mi spíše o to, která je nejrychlejší

Btw, děkuji za odpověď!!!
Alphard
Profil
proměnné se normálně zamění v řetězcích v uvozovkách, na psaní to bude asi nejrychlejší:
$hodnota = "Nazdar";
echo "Ahoj, hodnota proměnné je $hodnota";
TFSi
Profil
Spulda
Nejrychlejší je, jak již psal Pavel Strejček použití 'ab' . $var . 'de', ale u takhle krátkých řetězců to nemá význam moc řešit protože to "zrychlení" je zanedbatelné. Důvodem je to, že řetězce ohraničené apostrofem ( ' ) se posílají přímo na výstup, zatímco řetězce ohraničené uvozovkami ( " ) se ještě kontrolují na přítomnost "speciálních" znaků, které se poté nahrazují. Speciálními znaky myslím proměnné, \ n , \ t , ...
Pavel Strejček
Profil
TFSi
já bych to jemně doplnil, že zpomalení způsobuje hlavně rozpoznání názvu proměnné. Pokud budou dva řetězce bez proměnných jeden v apostrofech a druhý v uvozovkách tak rozdíl bude též zanedbatelný. Nezanedbatelné by to bylo v PHP3.
Toto téma je uzamčeno. Odpověď nelze zaslat.