Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Błąd składni
Forum PHP.pl > Forum > Przedszkole
pheter
Witam na forum!
Zaczynam twórczość w php i mam pytanie:
jak funkcjonalnie różnią się te dwa zapisy i dlaczego drugi jest błędny?
1.
  1. if($b){$b=false;}else{echo("<hr>");}

2.
  1. ($b)?($b=false):(echo("<hr>"));

Z góry dziękuję za pomoc, pozdrawiam!
potreb
Dlaczego błędny? Bo twój przykład to nie operator trójkowy.
  1. echo (isset($b) ? '<hr>' : 'dupa');
thek
Dlaczego błędnie? Jakby to powiedzieć delikatnie... Jeśli wiesz czym się różni ) i } to bedziesz wiedział czemu błąd wystąpił. Porównaj wszystkie zapisy w działaniu:
  1. if($b){$b=false;}else{echo("<hr>");}

  1. ($b)?($b=false):(echo ("<hr>"));

  1. ($b)? {$b=false} : { echo "<hr>" };

  1. ($b)? $b=false : echo "<hr>";

i domyśl, dlaczego pewne są, a inne nie są prawidłowe winksmiley.jpg

@pheter poniżej:
Masz rację. Cytat z manuala do echo:
echo() is not actually a function (it is a language construct), so you are not required to use parentheses with it. echo() (unlike some other language constructs) does not behave like a function, so it cannot always be used in the context of a function. Additionally, if you want to pass more than one parameter to echo(), the parameters must not be enclosed within parentheses.
pheter
@potreb,
w założeniu to właśnie miał być operator trójkowy

@thek,
domyślam się, że echo to nie jest funkcja tylko jakiś konstruktor php

dziękuję!
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.