Autor | Zpráva | ||
---|---|---|---|
okolojsoucí Profil * |
Dobrý den,
rád bych se zeptal jaký rozdíl je v zápisu následující syntexte: $promena = "Honza"; echo "Ahoj, jmenuji se {$promena}."; echo "Ahoj, jmenuji se " . $promena; Ono to pokaždé vypíše Ahoj, jmenuji se Honza. Jelikož ve svých scriptech používám 1. variantu tak nevím v čem je rozdíl. Děkuji Došlo k překliknutí v kategorii prosím moderátora o přesunutí. Děkuji Moderátor Chamurappi: Přesunuto z Učebnice PHP.
|
||
juriad Profil |
#2 · Zasláno: 2. 11. 2013, 14:28:05
Možná bych uvedl ještě jednu variantu:
echo "Ahoj, jmenuji se $promenna."; Jedná se o speciální syntaxi (podkapitola Variable Parsing), která umožňuje uvnitř řetězce přímo vkládat hodnoty proměnných. Druhý způsob je obyčejné spojení dvou řetězců (jeden je literál, druhý je reprezentovaný proměnnou). |
||
okolojsoucí Profil * |
#3 · Zasláno: 2. 11. 2013, 14:32:26
Tak že je to vlastně jedno jaká verze se využívá?
|
||
Tori Profil |
U prosté proměnné je to IMHO jedno. U čehokoli složitějšího (vícerozměrné pole nebo volání metody/fce) bych se rozhodovala podle subjektivní přehlednosti, čili spíš pro druhou variantu. V některých případech i musíte použít spojení řetězců (např. u výrazů nebo ternárního operátoru).
|
||
joe Profil |
#5 · Zasláno: 2. 11. 2013, 15:16:54
A ještě třetí, v PHP ideální volbou je:
echo 'Ahoj, jmenuji se ' . $promena; V apostrofech se nehledají proměnné. |
||
Borius Profil |
A ještě čtvrtá, rovněž ideální možnost:
echo 'Ahoj, jmenuji se ', $promena; |
||
Davex Profil |
A za chvíli přijde peta s variantou
printf("Ahoj, jmenuji se %s.", $promena); okolojsoucí: Juriadovu variantu považuji pro krátký text jako nejvíce přehlednou. Té se drž. Tvá první varianta se hodí ve složitějších situacích, když přímo za proměnou následují alfanumerické znaky a parser by neuměl rozeznat, kde končí jméno proměnné. joe: „V apostrofech se nehledají proměnné.“ Což se v podstatě hodí pouze tehdy, pokud řetězec obsahuje příliš mnoho znaků " nebo $ , které jsme líní escapovat.
Borius: Což je to samé jako echo 'Ahoj, jmenuji se '; echo $promena; |
||
Časová prodleva: 12 let
|
0