tjae...det ser ganske smart ud, jeg havde ikke tænkt på at smide dem i et array, men omvendt så anvender du jo ikke || operatoren? Jeg er tilbøjelig itl at give dig points, men jeg skal lige først høre om der ikke er en smartere måde end den som exp har givet ovenfor, hvis man absolut VIL anvende || ?
er den 'smarteste' og har yderligere den fordel at den virker i noget nær alle sprog, selv menneskesprog. du behøver ikke at huske den som en speciel php syntax der ikke virker i fx Java.
nogengange kan du gøre det kortere ved at tænke dig om, men det er ofte risikabelt. Her kunne det fx være fristende at sige:
if ( !( ($myvar < 1) ||($myvar > 3) ) ) {
Det ville være helt fint i Java og Pascal hvor man siger "dette er et heltal" samtidig med at man opretter sin variabel; men det er risikabelt i php hvor vi aldig kan vide om $myvar måske er en float med værdien 1.5 næste gang programmet kører.
if ($myvar == 1 || 2 || 3 ) { echo("myvar er 1,2 eller 3"); }else { echo("myvar er ikke 1,2 eller 3"); }
?>
Hvorfor er første betingelse altid sand? det burde det jo ikke være når variablen er 4 eller mere...
Grunden til det er, at du bare en af de ting du skriver i din if-sætning skal være sand, så er if'en sand, og nu er det sådan at alle tal, som ikke er 0, er sande. Da du tjekker om 2 eller 3 er sande (og det vil de altid være) vil din ifsætning altid blive opfyldt...
Ok, den var kringlet... Håber der var nogen der forstod bare lidt :-)
fordi operatoren || har 'lavere prioritet' end operatoren ==
prioriteten bestemmer i hvilken rækkefølge vi gør ting of du h´kender sandsynligvis allerede princippet: 2 * 2 + 4 akal udregnes som ( 2 * 2 ) + 4 // giver 4 + 4 giver 8 og ikke som 2 * ( 2 + 4 ) // giver 2 * 6 giver 12
fordi multiplikation * har højere prioritet end addition +
$myvar == 1 er et 'regnestykke' der enten giver true eller false 2 er et 'regnestykke' der giver 2 3 er et 'regnestykke' der giver 3
($myvar == 1) || (2) er et regnestykke der giver true hvis en af operanderne giver true.
og siden php 'hjælper' med at ændre værdier fra een type til en anden når der er brug for det vil (2) altid blive set som true (tal der ikke er nul), og så bliver slutresultatet til true.
mvh JakobA
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.