Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Błąd składni
pheter
post
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 1
Dołączył: 12.10.2009

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


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!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Dlaczego błędny? Bo twój przykład to nie operator trójkowy.
  1. echo (isset($b) ? '<hr>' : 'dupa');
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




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 (IMG:style_emoticons/default/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.

Ten post edytował thek 13.10.2009, 12:28:30
Go to the top of the page
+Quote Post
pheter
post
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 1
Dołączył: 12.10.2009

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


@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ę!
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: 23.08.2025 - 07:50