Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Banalny błąd
milki135
post 3.07.2012, 22:10:59
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.07.2012

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


Witam!

Dzisiaj pisząc skrypt napotkałem na pewien błąd.

Dlaczego:
  1. <?php
  2.  
  3. $a1="tik";
  4. $b1="tik";
  5.  
  6. $a2="tak";
  7. $b2="tak";
  8.  
  9. $nr = 1;
  10.  
  11. if ($nr = 1) { $a = $a1; $b = $b1;}
  12. if ($nr = 2) { $a = $a2; $b = $b2;}
  13.  
  14. echo "$a <br>";
  15. echo "$b <br>";
  16. echo "$nr <br>";
  17.  
  18. ?>


zawsze daje wynik "tak tak 2" skoro $nr ustalony jest na 1 ?

Będę wdzięczny za odpowiedź.
Go to the top of the page
+Quote Post
SmokAnalog
post 3.07.2012, 22:14:08
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Operatory porównania w PHP to == i ===. Pojedynczy = to operator przypisania. Instrukcja:
  1. if($a = $b)

sprawdza wartość $a po przypisaniu, czyli fałsz dla false, 0, 0.0 itp. oraz prawdę w pozostałych przypadkach.
Go to the top of the page
+Quote Post
!*!
post 3.07.2012, 22:14:34
Post #3





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

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


Ponieważ nie porównujesz w warunku, a ustawiasz.


--------------------
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
djgarsi
post 3.07.2012, 22:15:56
Post #4





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


  1. <?php
  2.  
  3. $a1="tik";
  4. $b1="tik";
  5.  
  6. $a2="tak";
  7. $b2="tak";
  8.  
  9. $nr = 1;
  10.  
  11. if ($nr == 1)
  12. {
  13. $a = $a1;
  14. $b = $b1;
  15. }
  16. if ($nr == 2)
  17. {
  18. $a = $a2;
  19. $b = $b2;
  20. }
  21.  
  22. echo $a."<br>";
  23. echo $b."<br>";
  24. echo $nr;
  25.  
  26. ?>


Tak powinno być.
Pamiętaj też o estetyce kodu. Przy dużych projektach będzie bardzo pomocne.


--------------------
Go to the top of the page
+Quote Post
milki135
post 3.07.2012, 22:19:11
Post #5





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 3.07.2012

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


Dzięki wszystkim bardzo za pomoc. Czułem, że to banalny błąd, ale nie spodziewałem sie tak szybkich odpowiedzi. Pozdrawiam wink.gif .
Go to the top of the page
+Quote Post
!*!
post 3.07.2012, 22:22:55
Post #6





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

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


Jeszcze jedna rzecz.

  1. $a1="tik";
  2. $a1='tik';


Jest różnica między apostrofem a cudzysłowem. Dla samego tekstu używaj apostrofu, parser wtedy nie dokonuje dodatkowych działań.


--------------------
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

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: 14.06.2024 - 01:24