• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Dziwna sprawa ze switchem i datą

Object Storage Arubacloud
0 głosów
586 wizyt
pytanie zadane 8 sierpnia 2015 w PHP przez CzlowiekSkrypt Nałogowiec (26,340 p.)
edycja 8 sierpnia 2015 przez CzlowiekSkrypt

Mam switcha który na podstawie danego miesiąca wyświetla określony obrazek: 

 

$month = date("m");

switch($month){
	case 01: echo "<img src=images/skymap/styczen.jpg />";
	break;

// i tak dalej aż do 12

Wskoczyło 08 i skrypt się wysypał, switch sobie przelatuje po 08 i nic z tego nie robi chociaż $month zwraca nam string(2) "08".
Poprawiłem wszystko, zamiast case xx zrobiłem case 'xx' no i teraz zadziałało, ale ciekawi mnie dlaczego wysypało się przy tej ósemce ?!  Wiem że różniły się typy danych i to był błąd ale wcześniej to skryptowi nie przeszkadzało :) 

W hard testingu wink wyszło że dla "09" też nie działa.

4 odpowiedzi

+1 głos
odpowiedź 8 sierpnia 2015 przez Comandeer Guru (601,550 p.)
Radzę zapoznać się z tzw. literałami oktalnymi, bo właśnie tym są liczby z 0 na początku
komentarz 8 sierpnia 2015 przez CzlowiekSkrypt Nałogowiec (26,340 p.)
Czyli konflikt na tle binarnym :)
0 głosów
odpowiedź 8 sierpnia 2015 przez Magicone Nałogowiec (45,100 p.)
<?php
	echo '<img src="images/skymap/';

	switch(date('m')){
		case '01': echo 'styczen.jpg'; break;
		case '02': echo 'luty.jpg'; break;
		case '03': echo 'marzec.jpg'; break;
		case '04': echo 'kwiecien.jpg'; break;
		case '05': echo 'maj.jpg'; break;
		case '06': echo 'czerwiec.jpg'; break;
		case '07': echo 'lipiec.jpg'; break;
		case '08': echo 'sierpien.jpg'; break;
		case '09': echo 'wrzesien.jpg'; break;
		case '10': echo 'pazdziernik.jpg'; break;
		case '11': echo 'listopad.jpg'; break;
		case '12': echo 'grudzien.jpg'; break;
	}

	echo '"/>';
?>

 

0 głosów
odpowiedź 8 sierpnia 2015 przez Vodoo Dyskutant (9,270 p.)
Próbowałeś bez 0 (samo 9)? Na stronie rzeczywiście jest informacja, że zwraca liczbę z zerem, ("Liczbowa forma miesiąca, z zerami wiodącymi 01 aż do 12"), ale według mnie nie ma takiej liczby jak 01, 02 itp. Dlatego mogło wskoczyć kiedy użyłeś '09'. Oczywiście mogę się mylić, więc nie bierz tego dosłownie.
–1 głos
odpowiedź 8 sierpnia 2015 przez roque Bywalec (2,160 p.)
A może działa tylko obrazek dla 09 nie istnieje?

Podobne pytania

0 głosów
1 odpowiedź 286 wizyt
pytanie zadane 20 października 2019 w C i C++ przez rel Początkujący (340 p.)
0 głosów
1 odpowiedź 357 wizyt
pytanie zadane 12 grudnia 2015 w C i C++ przez Ziuziek Mądrala (5,140 p.)
0 głosów
1 odpowiedź 206 wizyt
pytanie zadane 23 listopada 2019 w C i C++ przez Hardwell Dyskutant (8,980 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...