Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] sprawdzanie IF
!*!
post
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Ostatnio w niektórych skryptach php widzę zjawisko 'odwrócenia' przy sprawdzaniu w IF:

  1. if ( 'POST' != $_SERVER['REQUEST_METHOD'] )


  1. if ( false == $_SERVER['REQUEST_METHOD'] )


zamiast

  1. if ($_SERVER['REQUEST_METHOD'] !='POST' )

  1. if ($_SERVER['REQUEST_METHOD'] == false )


Czy to ma jakieś znaczenie w wydajności, dlaczego jest taki zapis?


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Każdy pisze jak mu wygodnie. smile.gif Co do wydajności musiałbyś sprawdzić ale wątpię, w każdym razie na php benchmark nie ma.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
!*!
post
Post #3





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


yhym, myślałem że to jest tak jak z pisaniem w pętli "++$i" zamiast "$i++" coś w tym stylu.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
by_ikar
post
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Mogę być w błędzie, ale gdzieś czytałem, nawet już nie pamiętam gdzie, że operacje logiczne (suma, różnica, iloczyn, iloraz itp) są wykonywane od prawej strony. Nie wiem czy tak jest na prawdę, może nawet to błędnie zapamiętałem, no ale coś takiego mi świta.
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




W działaniu różnicy nie ma. Chodzi o zwykłe bezpieczeństwo przed ludzką głupotą. Przykład

if ($zm == null)
teraz jakich bystrzacha sie jąrbnał i zrobił
if ($zm = null)
I po IF $zm ma wartość null

Teraz na odwrót
if (null == $zm)
I znowu się mylimy:
if (null = $zm)
Tu znowu mamy przypisanie, ale $zm po IF będzie miałą swoją wartość a nie jak poprzednio wartość null




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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
thek
post
Post #6





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




Fifi... Nie sprawdzałem nigdy, ale może chodzić o kolejność dynamicznej konwersji. W porównaniu bowiem coś zawsze jako pierwsze będzie musiało być konwertowane do zgodnego typu. Jeśli lewa strona na początku jest domyślna, to prawa strona porównania będzie castowana do typu własciwego dla lewej strony. W takim wypadku "odwrócony" if dla przykładu z pierwszego posta będzie raz konwertował $_SERVER['REQUEST_METHOD'] do stringa by porównać do POST, a za drugim razem do bool by sprawdzić z false.

"Typowa" kolejność wymuszała by 'POST' było stringiem, ale już false było by konwertowane zapewne do pustego stringa lub 'false' zależnie od tego co by mogło być w tym elemencie tablicy SERVER smile.gif Tak więc skłaniałbym się do tego, że w ten sposób jest wymuszane rzutowanie określonej strony porównania do własciwego typu zanim samo porównanie nastąpi. Choć wyjasnienie nospora też jest sensowne.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Fifi209
post
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


zThek, jego wyjaśnienie jest bardziej sensowne bo nie ogranicza się tylko do PHP, w kompilowanych językach też można tak zrobić, a dynamiczne typy to zło!! Za bardzo się przyzwyczaiłem do C++ i C# i teraz mi to strasznie w PHP przeszkadza, tak jak kiedyś mi się podobało.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
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 - 20:46