Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Porównywanie strongów
Kubik93
post 16.02.2020, 23:45:59
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 20.12.2019

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


Cześć i czołem,

głupie pytanie. Dlaczego

  1. if($country=='FR'||'AT'||'HU'||'SI')


przyjmuje TRUE skoro $country = 'PL';

Danke sehr za odpowiedz smile.gif
Go to the top of the page
+Quote Post
Neutral
post 17.02.2020, 00:07:25
Post #2





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

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


  1. $countries = ['FR', 'AT', 'HU', 'SI'];
  2. if(in_array($country, $countries))// ...


Jeśli chcesz mocniejsze typowanie, to na końcu dodaj true, do in_array...

Zaprezentowany kod wyrzuca true, najprawdopodobniej dlatego, że porównuje $country z 'FR', dalej "nic" z 'AT' itd., więc już dla 'AT' zwraca true, nie jest porównywany z niczym.

  1. if($country == 'FR' || $country == 'AT' || $country == 'HU' || $country == 'SI')// ...


Ten post edytował Neutral 17.02.2020, 00:19:39
Go to the top of the page
+Quote Post
Pyton_000
post 17.02.2020, 08:30:17
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Zwraca true dla tego że przy operacji logicznej prawa strona wyrażenia (czyli to po ==) jest ewaluowana do wartości bool więc

'FR'||'AT' => true || true => true

potem porównanie z lewą stroną a że string => true to true == true
Go to the top of the page
+Quote Post
Kubik93
post 17.02.2020, 20:03:39
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 0
Dołączył: 20.12.2019

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


Bardzo lubię to forum!

Dzięki Panowie smile.gif
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 Wersja Lo-Fi Aktualny czas: 28.03.2024 - 18:10