Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konwersja string na boolean zamiast int
Forum PHP.pl > Forum > PHP
pawelekkk123
Cześć, potrzebuję pomocy. Mianowicie jeżeli konwertuję string na int, to nie zamienia się on w int tylko boolean. Nie wiem o co chodzi, jestem świeży w temacie sad.gif Z góry dziękuję!

Kod wygląda nastepująco, pobieram promptem string i chcę go przekonwertować na int, ponieważ w dalszej fazie będzie mi potrzebny $numer

function prompt($prompt_msg){
echo("<script language='javascript'> let answer = prompt('".$prompt_msg."'); </script>");

$answer = "<script language='javascript'> document.write(answer); </script>";

return($answer);
}
$prompt_msg = "Podaj numer";
$numer = prompt($prompt_msg);
echo gettype($numer);
echo $numer;
$numer = settype($numer, "int");
echo gettype($numer);
echo $numer;
gino
Ponieważ funkcja settype zwraca true jeżeli zamiana się powiedzie i false jeśli nie. Jak robisz echo tej funkcji to wpisze Ci co zwraca.
pawelekkk123
Dziękuję, tylko w takim razie pojawia się taki problem, że gdy mój string ma np. wartość 2 i zamieniłem go na typ int, to wartość nie jest równa 2 tylko 0
trueblue
Błędem jest na pewno próba przypisania wartości z JavaScript do zmiennej w PHP (4 linia w kodzie).
gino
Eee no co Ty, robię taki kod:
Kod
$number = '2';
settype($number,'int');
echo gettype($number);
echo $number;


i ładnie zmienia mi dwójkę na int.

Zamiast settype() możesz zrobić rzutowanie bezpośrednie:
Kod
$number = '123456';
$number = (int)$number;
trueblue
Tak jak napisałem w moim wcześniejszym poście - robisz błąd logiczny.
Zmienna $numer ma zawsze wartość: "<script language='javascript'> document.write(answer); </script>", więc możesz wpisywać w prompcie JS cokolwiek.
pawelekkk123
Dziękuję za informacje. Wiecie może czy jest jakaś szansa, żeby pobrać tą cyfrę w jakiś sposób promptem lub jakkolwiek inaczej i wpisać ją do zmiennej $numer, a następnie skonwertować na int?
gino
Nie wiem jak wywołujesz tą funkcję, ale całość można zrobić w js, nie musisz kombinować i łączyć php i js, bo o błędy logiczne nie trudno. W js masz parseInt() do zamiany string na intiger.
pawelekkk123
Tylko potrzebuję czegoś takiego, że przed wejściem na stronę podaję cyfrę i jest ona mi następnie potrzebna jako int w kolejnym etapie. Ewentualnie pobrać ją w jakiś innym sposób, tylko nie mam pomysłu niestety. Jeśli ktoś miałby jakieś rozwiązanie, to jestem w stanie zapłacić za chwilę poświęconego czasu.
gino
Przypisanie zmiennej js do php jest problematyczne bo php wykonuje się na serwerze a js lokalnie. Twoja funkcja zwraca cały ciąg znaków o którym pisał trueblue i dlatego funkcja settype czy (int) zwróci 0 czyli false (niepowodzenie konwersji typu). Umieść na stronie formularz z polem input i tą wartość z tego formularza prześlij i obrób z czystym php.
pawelekkk123
Jak zrobię w formularzu inputa pobiorę i prześlę wartość, to wiesz może jak tę wartość mam wpisać do zmiennej w php?
viking
Jest coś takiego jak manual, warto go czasami przeczytać: https://www.php.net/manual/en/language.vari...es.external.php
pawelekkk123
Dziękuję, pomógł mi ten link smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.