Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Średnik, Pytanie z serii mało ważnych
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


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ć.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
mstraczkowski
post
Post #2





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


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.


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
teez
post
Post #3





Grupa: Zarejestrowani
Postów: 186
Pomógł: 6
Dołączył: 20.12.2010

Ostrzeżenie: (0%)
-----


Czemu short tags są złym nawykiem? Po to są wprowadzone aby było prościej przecież..
Go to the top of the page
+Quote Post
markonix
post
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


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).


--------------------
Go to the top of the page
+Quote Post
mstraczkowski
post
Post #5





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


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



Ten post edytował mstraczkowski 24.02.2013, 17:25:57


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
markonix
post
Post #6





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


<? 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.


--------------------
Go to the top of the page
+Quote Post
mstraczkowski
post
Post #7





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


W takim razie nie widzę zastrzeżeń


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
toaspzoo
post
Post #8





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


podobno w php6 mają zostać wykasowane short tagi


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
markonix
post
Post #9





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Zmieniają decyzje co chwilę poza tym ja nawet nie mam jeszcze PHP 5.4 na serwerze, a gdzie tam do PHP6.


--------------------
Go to the top of the page
+Quote Post
hind
post
Post #10





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

Ostrzeżenie: (0%)
-----


short tag != <?= $var ?>
Go to the top of the page
+Quote Post
markonix
post
Post #11





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Hm..

No a dyrektywa short_tags przypadkiem nie wyłącza też <?= właśnie?


--------------------
Go to the top of the page
+Quote Post
mstraczkowski
post
Post #12





Grupa: Zarejestrowani
Postów: 273
Pomógł: 52
Dołączył: 3.02.2013
Skąd: Przemyśl

Ostrzeżenie: (0%)
-----


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


--------------------
Jeżeli moja wypowiedź Ci pomogła użyj przycisku
Go to the top of the page
+Quote Post
hind
post
Post #13





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

Ostrzeżenie: (0%)
-----


@markonix
http://www.php.net/manual/pl/language.basi...tax.phpmode.php
od php 5.4 <?= jest niezależne od short_open_tag
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:04