Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Czego używać zamiast operatora == ?
Matrix12
post
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 22.03.2015

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


Witam,


ostatnio przeczyałem że nie powinno się używać == więc co powinno się za niego używać? Jak porównać zmienne / liczby / stringi ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Skie
post
Post #2





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

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


Cytat
Ale nie zawsze przydatny...

Jak chce sprawdzic, czy ktos nie wpisal nic lub 0 (gdy zero w danym przypadku uwazam za 'nic') to robie

$_POST['cos'] == '' i lapnie mi te dwa przypadki
$_POST['cos'] === '' nie zadziala dla 0


Widzisz, a ja bym jednak rozbił to na dwa osobne warunki i sprawdził za pomocą ===. Równość 0 == '' nie jest do końca naturalna i nie zaufałbym PHP na tyle, że to się nie zmieni, jak zrobię update czegokolwiek na serwerze. Zwłaszcza, że PHP nigdzie nie ma zdefiniowanych reguł języka, że 0 == '' ma być prawdziwe. Tak po prostu wyszło przy implementacji parsera, w innej wersji PHP, na innym OS, przy innej kompilacji może się okazać, że to nieprawda. Nie mówiąc już o czytelności kodu.

To co chcę powiedzieć to to, że === jest ZAWSZE przydatny i zawsze == możesz zastąpić ===. Oczywiście możemy tutaj dłuuugo dywagować no ten temat, więc nie ma to sensu. Myślę, że autor dowiedział się tego czego potrzebował (IMG:style_emoticons/default/smile.gif)

Ten post edytował Skie 22.07.2015, 12:47:00
Go to the top of the page
+Quote Post
Forti
post
Post #3





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Cytat(Skie @ 22.07.2015, 13:46:27 ) *
Widzisz, a ja bym jednak rozbił to na dwa osobne warunki i sprawdził za pomocą ===. Równość 0 == '' nie jest do końca naturalna i nie zaufałbym PHP na tyle, że to się nie zmieni, jak zrobię update czegokolwiek na serwerze. Zwłaszcza, że PHP nigdzie nie ma zdefiniowanych reguł języka, że 0 == '' ma być prawdziwe. Tak po prostu wyszło przy implementacji parsera, w innej wersji PHP, na innym OS, przy innej kompilacji może się okazać, że to nieprawda. Nie mówiąc już o czytelności kodu.

To co chcę powiedzieć to to, że === jest ZAWSZE przydatny i zawsze == możesz zastąpić ===. Oczywiście możemy tutaj dłuuugo dywagować no ten temat, więc nie ma to sensu. Myślę, że autor dowiedział się tego czego potrzebował (IMG:style_emoticons/default/smile.gif)



Myśle że troche przesadzasz.

  1. (int) '0' == null; // true
  2.  
  3. $array['zero'] = 0;
  4. isset($array['zero']); // false
  5.  
  6. $array['zero'] = '';
  7. isset($array['zero']); // false, z tego co pamiętam


Więc spokojnie jeżeli porównujemy tylko do null / 0 można uzywac == mimo że często widuje ===. Myśle że nie ma się czym przejmować w takim wypadku.

Ten post edytował Forti 22.07.2015, 13:20:37
Go to the top of the page
+Quote Post

Posty w temacie


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: 15.10.2025 - 10:24