21
Ohjelmointi, palvelimet ja muu edistyneempi käyttö / [ ratkaistu ] php ! -operaattori
« : 01.09.24 - klo:18.38 »
Nettiohjeiden mukaan ! -operaattorin pitäisi kääntää totuusarvo, mutta en keksi, miksi niin ei näytä tapahtuvan tässä pienessä kokeiluohjelmassa
kokeilu meni näin
Voi olla, että kyseessä on joku yksinkertainen logiikkavirhe omassa logiikassani, mutta itse sitä on vaikea huomata
Miten pitäisi testata, että syötettävä arvo on kokonaisluku php:ssä.
Koodia: [Valitse]
<?php
if(1)
{
echo("luku alkaa \n\n");
$qs = readline("anna arvo1 arvo2 arvo3 ja arvot4: ");
echo("\n\n luku loppu \n\n");
$_POST['arvo1'] = explode(' ', $qs)[0] . ' ';
$_POST['arvo2'] = explode(' ', $qs)[1] . ' ';
$_POST['arvo3'] = explode(' ', $qs)[2] . ' ';
$_POST['arvot4'] = implode(' ', array_slice(explode(' ', $qs), 3));
/*
echo( $_POST['arvo1'] );
echo( $_POST['arvo2'] );
echo("\n\n loppu \n\n");
*/
} // if loppuu
if(empty($_POST["arvo1"]))
{
die("arvo1 puuttuu");
}
echo($_POST["arvo1"] ) ;
echo( " arvon1:n pituus on " . strlen(trim($_POST["arvo1"] )) . "\n" );
if( !is_int(trim($_POST["arvo1"] )) )
{
die("\narvo1:n on oltava kokonaisluku\n "); // <<<====== vaikka arvo on 1, tullaan tänne ????
}
$my_number = str_replace(' ', '', $_POST['arvo1'] ); // tyhjät pois
$my_number = filter_var($my_number, FILTER_SANITIZE_STRING);
$my_number = substr($my_number, 0, 40);
?>
kokeilu meni näin
Koodia: [Valitse]
php kokeilu_05.php
luku alkaa
anna arvo1 arvo2 arvo3 ja arvot4: 1 aa oo 2 3 4
luku loppu
1 arvon1:n pituus on 1
arvo1:n on oltava kokonaisluku
Voi olla, että kyseessä on joku yksinkertainen logiikkavirhe omassa logiikassani, mutta itse sitä on vaikea huomata
Miten pitäisi testata, että syötettävä arvo on kokonaisluku php:ssä.