Autor Zpráva
Brouzdy
Profil *
Zdravím,
mám tento kód:
<form action="<?php echo $PHP_SELF; ?>" method="get">
<input type="text" name="cislo" size="10">
<input type="submit" name="submit" value="Odeslat metodou GET">
</form>

<?php
$cislo = $_GET["cislo"];
echo $cislo."<br />";
echo "Typ proměnné \$cislo je ". gettype($cislo)."<br />";

$cislo2 = $cislo;
settype ($cislo2, "integer");
echo "Typ proměnné \$cislo2 je ". gettype($cislo2)."<br />";
echo "A má hodnotu ". $cislo2."<br />";
?>


Můj problém spočívá v tom, že když zadám cokoliv do textového pole, jedná se o typ 'string'. V případě, když zadám "2eva", tak mi PHP převede na integer -> 2, což chápu.. ale nevím, jak to mám udělat, aby mi to vrátilo 0 ?! Protože nebylo zadáno "čisté číslo". Měly by se použít regulární výrazy, nebo to stačí lehčím způsobem ošetřit ?

Díky..
bukaj
Profil
$ciste_cislo = (string) intval($_GET['cislo']) === $_GET['cislo'];

?
Brouzdy
Profil *
Díky za odpověď, je to teda konverzní funkce, pokud použiju tento zápis "($_GET['cislo']) === $_GET['cislo']", tak mi to při nesmyslném vyplnění, tj. kombinace čísel a znaků (3abcdef) vypíše 1. To už je docela dobrý :)
Můžu se zeptat, co je to za zápis - ty tři rovnítka ? Díky..
Brouzdy
Profil *
Teď jsem ještě našel funkci
is_numeric

ta se taky dobře hodí :)
Radim Hejhal
Profil
Tři rovnítka porovnávají nejen obsah proměnných, ale i jejich typ (string, int apod.).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0