Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]PHP żegna się z klamrami?
fiszol
post
Post #1





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Zajrzałem pierwszy raz od kilku lat do manuala php i zauważyłem tam takie zapisy:
  1. <?php
  2. while($a < $b):
  3. if($b):
  4. // bla bla
  5. endif;
  6. endwhile;
  7. ?>

Czy to ma jakąś przewagę nad zastoswaniem klamry? Który sposób zapisu instrukcji teraz jest "bardziej" prawidłowy?


--------------------
\o/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
Salvation
post
Post #2





Grupa: Zarejestrowani
Postów: 403
Pomógł: 72
Dołączył: 15.07.2014

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


Nie jest "bardziej prawidłowy". To jest po prostu inny zapis tego samego.
A powstał (chyba) w czasach jak spaghetti code był powszechny i w pliku z rozszerzeniem `.php` mogłeś znaleźć fragment HTML-a, CSS-a i JS-a.

Taki zapis:
  1. <?php
  2. $var = true;
  3.  
  4. if ($var): ?>
  5. <h1>Hello World!<h1><br>I inny kod HTML / JS
  6. <?php endif;


Jest równoważny z tym:
  1. <?php
  2. $var = true;
  3.  
  4. if ($var) {
  5. echo '<h1>Hello World!<h1><br>I inny kod HTML / JS';
  6. }


Przy czym ten pierwszy zachowa dodatkowo wcięcie od lewej (` <h1>`), a drugi będzie zaczynał się skrajnie z lewej.
Go to the top of the page
+Quote Post
fiszol
post
Post #3





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Mógłbym godzinę przysięgać, że kilka lat temu takich przykładów w manualu nie było biggrin.gif
while
Generalnie odniosłem wrażenie, że to jest coś nowego. Zaintrygowało mnie to na tyle, by po kilku latach odwiedzić to forum.
Dziękuję za wyjaśnienie.

Ten post edytował fiszol 5.08.2025, 16:52:42


--------------------
\o/
Go to the top of the page
+Quote Post
Tomplus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Ogólnie, to że jest możliwe stosowanie takiego stylu, to nie jest on zalecany przez rekomendacje standardu PHP. PSR-12 jasno mówi że bloki kodu muszą być objęte nawiasami klamrowymi.
https://www.php-fig.org/psr/psr-12/
Go to the top of the page
+Quote Post
fiszol
post
Post #5





Grupa: Zarejestrowani
Postów: 452
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

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


Przekopałem manual php na https://web.archive.org/ i taki zapis był w każdym zapisanym zrzucie (od 2001 po dzisiaj). Nie wiem czemu nigdy wcześniej nie zwróciłem na to uwagi.

Ten post edytował fiszol 5.08.2025, 22:02:16


--------------------
\o/
Go to the top of the page
+Quote Post
Tomplus
post
Post #6





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Nie trzeba przekopywać archiwów, to jest nadal w dokumentacji:

while
  1. $i = 1;
  2. while ($i <= 10):
  3. echo $i;
  4. $i++;
  5. endwhile;


elseif
  1. if ($a > $b):
  2. echo $a." is greater than ".$b;
  3. elseif ($a == $b): // Note the combination of the words.
  4. echo $a." equals ".$b;
  5. else:
  6. echo $a." is neither greater than or equal to ".$b;
  7. endif;



switch
  1. switch ($i):
  2. case 0:
  3. echo "i equals 0";
  4. break;
  5. case 1:
  6. echo "i equals 1";
  7. break;
  8. case 2:
  9. echo "i equals 2";
  10. break;
  11. default:
  12. echo "i is not equal to 0, 1 or 2";
  13. endswitch;


Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 03:19