Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Średnik
Forum PHP.pl > Forum > PHP
markonix
Czy jest jakiś przypadek czy okoliczność w której należy korzystać z średnika przy short_tags.

  1. <?= $var ?>
  2. <?= $var; ?>
  3. <?= $var ; ?>
  4. <?=$var?>
  5. <?=$var;?>

Z tego co wiem to ?> jednocześnie zamyka wszelkie konstrukcje no ale czy zawsze?
No i ogólnie zastanawiam się, która wersja jest najbardziej zgodna z standardami.
PSR zezwala na shorttags ale nie określa jak najlepiej ich używać.
mstraczkowski
Moim zdaniem powinno się zawsze dawać średnik na końcu danego wyrażenia, nie tyle że jest on koniecznie potrzebny co po prostu jest lepszym standardem kodowania, odradzałbym tak samo używanie short tags - to nie są dobre nawyki.

Odnośnie jeszcze średników:
Przykładowo jakbyś chciał dodać coś jeszcze w tej samej linii, a nie byłoby tam średnika straciłbyś chwilkę, aby zorientować się dlaczego IDE podświetla linijkę na czerwono.
teez
Czemu short tags są złym nawykiem? Po to są wprowadzone aby było prościej przecież..
markonix
short tags wraca do łask i mnie to bardzo cieszy bo lubię z nich korzystać w szablonach (np. w codeigniter).

Cytat(mstraczkowski @ 24.02.2013, 16:20:08 ) *
Przykładowo jakbyś chciał dodać coś jeszcze w tej samej linii, a nie byłoby tam średnika straciłbyś chwilkę, aby zorientować się dlaczego IDE podświetla linijkę na czerwono.

Troszkę nie rozumiem wink.gif Do <?= $zmienna ?> nic nigdy nie dokładam - dla mnie to już ostateczna konstrukcja analogiczna np. do {zmienna}. Jeżeli bym chciał coś dodać np. jednostkę to bym to zrobił drugim znacznikiem (mimo, że to dłuższe rozwiązanie).
mstraczkowski
Jeżeli chodzi o konstrukcję <?= $var ?> to w porządku jako, że jest to alternatywa do <?php echo $var ?> więc z reguły nie ma potrzeby dodania do tej linii innych wyrażeń:

Natomiast jeżeli używamy czysto hipotetycznie <? $var = $otherVar; echo $otherVar; ?> to warto pamiętać o średnikach.

Dla samego spokoju ducha i trzymania się standardów uważam, że powinno się używać pełnych konstrukcji oraz średników na końcu każdego z wyrażeń.
Nie sądzę, aby miało to wpływ na wydajność pracy, czy ktoś pisze <?php czy <? czy da średnik na końcu czy nie.

Cytat
PHP also allows for short tags <? and ?> (which are discouraged because they are only available if enabled with short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option.


Dlatego są złym nawykiem ponieważ do ich działania konieczne jest ustawienie w php.ini
Używając pełnych tagów zawsze mamy pewność, że kod PHP zostanie prawidłowo rozpoznany

Chyba że rozmawiamy o PHP 5.4, ale moim zdaniem to jeszcze za wcześnie, dużo hostingów opiera się jeszcze na PHP 5.3 / 5.2
Potem może być problem podczas przenoszenia kodu na inny serwer.

Znalazłem ciekawy diagram i dołączę go poniżej, odpowiada on na to czy w twoim przypadku używanie short tags jest w porządku

markonix
<? jako alternatywy dla <?php nie używam, bo to zbędna wygoda.
Cały temat dotyczy tylko alternatywy echo.

W CI jeśli shorttags są wyłączone to w locie je zmienia na echo.
mstraczkowski
W takim razie nie widzę zastrzeżeń
toaspzoo
podobno w php6 mają zostać wykasowane short tagi
markonix
Zmieniają decyzje co chwilę poza tym ja nawet nie mam jeszcze PHP 5.4 na serwerze, a gdzie tam do PHP6.
hind
short tag != <?= $var ?>
markonix
Hm..

No a dyrektywa short_tags przypadkiem nie wyłącza też <?= właśnie?
mstraczkowski
Wspomniałeś o codeigniterze, a tak się składa że niedawno przeglądałem źródła kilku frameworków w tym jego.

Otóż jeżeli chodzi o to jego magiczne zamienianie tagów to używa do tego celu eval, a to dość słabe rozwiązanie i mało wydajne.

Ale to taka ciekawostka tylko smile.gif
hind
@markonix
http://www.php.net/manual/pl/language.basi...tax.phpmode.php
od php 5.4 <?= jest niezależne od short_open_tag
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.