Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Rozróżnianie zmiennej
TheDuliMen
post 5.07.2012, 12:40:21
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 30.06.2012

Ostrzeżenie: (10%)
X----


Chodzi mi o to że np jeśli ostatnia cyfra w zmiennej $przykladowa to '1','2','3','4' to w zmiennej $przykladowa2 ma być 'metra' a jeśli '0','5','6','7','8','9' to w $przykladowa2 ma być 'metrów'. Kolega mi mówił że na wyrażeniach regularnych że można pobrać ostatnią cyfrę ale tego znaleźć nie mogę.
Go to the top of the page
+Quote Post
SmokAnalog
post 5.07.2012, 12:53:31
Post #2





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

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


  1. switch(substr($przykladowa, -1)) {
  2. case '1':
  3. case '2':
  4. case '3':
  5. case '4':
  6. $przykladowa2 = 'metra';
  7. break;
  8. default:
  9. $przykladowa2 = 'metrów';
  10. }
Go to the top of the page
+Quote Post
TheDuliMen
post 5.07.2012, 13:00:33
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 30.06.2012

Ostrzeżenie: (10%)
X----


  1. preg_match('#Długość toru:\s*(\d*)#', $raport, $tablica); // Długość toru
  2. $dlugosc_toru = $tablica[1]; // Liczba
  3. $dlugosc_toru2 = $dlugosc_toru / 1000; // Liczba kilometrowa
  4. switch(substr($dlugosc_toru2, -1)) {
  5. case '1':
  6. case '2':
  7. case '3':
  8. case '4':
  9. $dlugosc_toru3 = 'metra'; // Jednostka
  10. break;
  11. default:
  12. $dlugosc_toru3 = 'metrów'; // Jednostka
  13. }

$dlugosc_toru2 '5437' a $dlugosc_toru3 = 'metra' dziwne... Sprawdziłem poprawność pobranego elementu $tablica[0] i jest on poprawny.
Go to the top of the page
+Quote Post
SmokAnalog
post 5.07.2012, 13:25:30
Post #4





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

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


Jesteś pewien, że wyrażenie:
  1. $dlugosc_toru2 = $dlugosc_toru / 1000;

nie daje Ci liczby zmiennoprzecinkowej? W takim przypadku ten mój przykład weźmie ostatnią cyfrę liczby zmiennoprzecinkowej, czyli ostatnią cyfrę ułamka. Przykładowo, dla $dlugosc_toru / 1000 = 1.23, kryterium przyznawania końcówki będzie cyfra 3, a nie 1.
Go to the top of the page
+Quote Post
TheDuliMen
post 5.07.2012, 13:28:04
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 30.06.2012

Ostrzeżenie: (10%)
X----


  1. preg_match('#Długość toru:\s*(\d*)#', $raport, $tablica); // Długość toru
  2. $dlugosc_toru = $tablica[1]; // Liczba
  3. $dlugosc_toru2 = $dlugosc_toru / 1000; // Liczba kilometrowa
  4. switch(substr($dlugosc_toru2, -1)) {
  5. case '1':
  6. case '2':
  7. case '3':
  8. case '4':
  9. $dlugosc_toru3 = 'metra'; // Jednostka
  10. break;
  11. default:
  12. $dlugosc_toru3 = 'metrów'; // Jednostka
  13. }


Miało być
  1. preg_match('#Długość toru:\s*(\d*)#', $raport, $tablica); // Długość toru
  2. $dlugosc_toru = $tablica[1]; // Liczba
  3. $dlugosc_toru2 = $dlugosc_toru / 1000; // Liczba kilometrowa
  4. switch(substr($dlugosc_toru, -1)) {
  5. case '1':
  6. case '2':
  7. case '3':
  8. case '4':
  9. $dlugosc_toru3 = 'metra'; // Jednostka
  10. break;
  11. default:
  12. $dlugosc_toru3 = 'metrów'; // Jednostka
  13. }
Go to the top of the page
+Quote Post
Mephistofeles
post 5.07.2012, 13:38:32
Post #6





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


https://github.com/symfony/Translation/blob...ageSelector.php
Go to the top of the page
+Quote Post
SmokAnalog
post 5.07.2012, 13:39:48
Post #7





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

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


Jeśli interesuje Cię informacja o liczbie kilometrów, to powinieneś zrobić coś w stylu:
  1. preg_match('#Długość toru:\s*(\d*)#', $raport, $tablica); // Długość toru
  2. $dlugosc_toru_metry = $tablica[1]; // Liczba
  3. $dlugosc_toru_kilometry = floor($dlugosc_toru / 1000); // Liczba kilometrowa
  4. switch(substr($dlugosc_toru_kilometry, -1)) {
  5. case '1':
  6. case '2':
  7. case '3':
  8. case '4':
  9. $jednostka= 'metra'; // Jednostka
  10. break;
  11. default:
  12. $jednostka= 'metrów'; // Jednostka
  13. }

Zwróć uwagę, że zmieniłem nazwy zmiennych na takie, które coś mówią. Unikaj nazewnictwa typu $coś1, $coś2 itp., bo się pogubisz.
Go to the top of the page
+Quote Post
TheDuliMen
post 5.07.2012, 14:08:18
Post #8





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 30.06.2012

Ostrzeżenie: (10%)
X----


Ja tak nazywam że maksymalnie zmiennych jest 4 czyli maks $przyklad4 ale wszystko zapisuje w /* */\

  1. $dlugosc_toru_kilometry = floor($dlugosc_toru / 1000); // Liczba kilometrowa

Ja wolę jednak taki zapis:
  1. $dlugosc_toru_kilometry = $dlugosc_toru / 1000; // Liczba kilometrowa
[/php]

Ten post edytował TheDuliMen 5.07.2012, 14:09:17
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: 21.07.2025 - 07:12