Nettiohjeiden mukaan ! -operaattorin pitäisi kääntää totuusarvo, mutta en keksi, miksi niin ei näytä tapahtuvan tässä pienessä kokeiluohjelmassa
<?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
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ä.