webForumDet fria alternativet

if-sats fråga ?

3 svar · 243 visningar · startad av Pellefant

PellefantMedlem sedan maj 20023 372 inlägg
#1

Hej!

Jag har denna kod. :)

$frekvens läses in från en textfil med:
$frekvens = fread($open_file, filesize($filename3));
(så jag antar att den räknas som en char?)

Mitt problem är att om $frekvens är en siffra, tex 4, så blir $nrDaysLeft 7 och inte 4 såsom dig bör. :(

(om $frekvens är en veckodag, då funkar det, då får $nrDaysLeft 7)

if($frekvens == "Monday" || "Tuesday" || "Wednesday" || "Thursday" || "Friday" || "Saturday" || "Sunday"){
$nrDaysLeft=7;
}

else if($frekvens == 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14){
$nrDaysLeft=$frekvens;
}
sankeMedlem sedan feb. 200327 inlägg
#2

<?if(!is_numeric($frekvens)){
$nrDaysLeft=7;
}
else if($frekvens == 1 || 2 || 3 || 4 || 5 || 6 || 7 || 8 || 9 || 10 || 11 || 12 || 13 || 14){
$nrDaysLeft=$frekvens;
}?>
<?=$nrDaysLeft?>

MatteMedlem sedan aug. 20002 975 inlägg
#3

När man hämtar från textfiler kan det ibland komma med lite dolda tecken som kan stöka till det vid jämförelser. Dessa tecken kan man rensa bort med trim().

$frekvens = trim(fread($open_file, filesize($filename3)));

Sen känner jag mig tveksam till dina if-satser. Som jag har lärt mig, och har heller inte sett något annat, så ska du skriva:

if($frekvens == "Monday" || $frekvens == "Tuesday" || $frekvens == "Wednesday" ...){

Själv skulle jag gjort så här:

$days = array("Monday", "Tuesday", "Wednesday", "Thursday",  "Friday", "Saturday", "Sunday");
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14);

$frekvens = trim(fread($open_file, filesize($filename3))); 

if (in_array($frekvens, $days)) {
   $nrDaysLeft=7;
} elseif (in_array($frekvens, $numbers)) {
   $nrDaysLeft=$frekvens;
}
PellefantMedlem sedan maj 20023 372 inlägg
#4

Tack för hjälpen båda, nu verkar det funka. Tog Mattes lösning denna gången.

143 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
141 ms — hämta tråd, inlägg och bilagor (db)