D donkey Medlem sedan jan. 2004 179 inlägg Frågan 15 juni 2006 21:27 #1 Har en variabel ($antal) som jag skulle vilja ta ruten ur och se om svaret är ett heltal och på något sätt integrera det i en if-sats, ex
om roten ur $antal är ett heltal visas 'Ok' annars visas 'Fel'.
Har klurat fram och tillbaka, men får inte riktigt till det, förslag?
Edit: Okej, roten ur får jag med hjälp av sqrt(), men problemet kvarstår hur jag ska se om detta är ett heltal eller inte...
A aron Medlem sedan mars 2004 485 inlägg Jag kan inget om PHP men jag gissar:
Använd denna funktion för att räkna ut roten:
http://se2.php.net/manual/en/function.sqrt.php
Och denna för att kolla resten när du delar med 1(edit: ska vara lika med 0):
http://se2.php.net/manual/en/function.fmod.php
D donkey Medlem sedan jan. 2004 179 inlägg jag var mer inne på funktionen is_int... någon annan som vet?
Fortsätter prova mej fram... :p
Matte Medlem sedan aug. 2000 2 975 inlägg is_int() ger sant på 1 men falskt på '1', så jag skulle rekommendera ett regexp:
if (preg_match("/^[1-9][0-9]*$/", $var)) {
// Är heltal
}
A aron Medlem sedan mars 2004 485 inlägg Du måste väl använda en variabel som inte är en Integer för att ta roten ur på den, annars så får du alltid heltal som svar (om det finns en sån roten ur funktion). Jag tror inte att det omvandlas till en heltals variabel bara för att dess värde är ett heltal.
Så här tänker alltså jag: (edit funkar, jag lyckades testa :) )
<?php
$x = 9;
if (fmod(sqrt($x), 1) == 0) {
echo "True";
} else {
echo "False";
}
?>
edit: Det funkade inte med %
D donkey Medlem sedan jan. 2004 179 inlägg kung Matte! Fungerar klockrent, tack!