Avatar billede totalpc Seniormester
22. marts 2018 - 09:01 Der er 7 kommentarer og
3 løsninger

Simpelt Or sætning

Hej
Jeg har en meget simpel Or sætning jeg ikke kan få til at virke.

if ($currentid != 1677 )

Nu vil jeg gerne have en ekstra not equal fx 1734 med i if sætningen.
Men uanset hvordan jeg gør så kan jeg ikke få det til at virke.

Jeg vil gerne have 2 løsninger.
1. den simple løsning med en or
2. den bedre løsning med et array af tal hvor jeg kan sammeligne med. Hvis der nu kommer flere.

På forhånd tak
Avatar billede olsensweb.dk Ekspert
22. marts 2018 - 09:15 #1
>Nu vil jeg gerne have en ekstra not equal fx 1734 med i if sætningen.
så skal der jo bare en and på.
prøv
if ($currentid != 1677  || $currentid != 1734)
eller
if ($currentid != 1677  or $currentid != 1734)


>2. den bedre løsning med et array af tal hvor jeg kan sammeligne med. Hvis der nu kommer flere.
brug functionen in_array
http://php.net/manual/en/function.in-array.php
https://www.w3schools.com/php/func_array_in_array.asp
Avatar billede michael_stim Ekspert
22. marts 2018 - 09:29 #2
Tror i ikke det skal være &&
Avatar billede olsensweb.dk Ekspert
22. marts 2018 - 09:41 #3
#2
jo, ved or er det jo kun en af den der behøver at være sand, (tanke torsk fra min side :) )

if ($currentid != 1677  && $currentid != 1734)
eller
if ($currentid != 1677  and $currentid != 1734)
Avatar billede totalpc Seniormester
22. marts 2018 - 09:49 #4
Hold nu kæft...... tak... jeg røg i samme tanketorsk. Det virker :D
Avatar billede jakobdo Ekspert
22. marts 2018 - 13:18 #5
Men som #1 siger, brug in_array(), så bliver din kode mere "dynamisk" og nemmere at overskue.
Avatar billede totalpc Seniormester
22. marts 2018 - 13:28 #6
Jeg ville gerne, men har forsøgt ... jeg kan ikke få det til at virke.
Vil I forsøge at lave et eksempel?
Avatar billede olsensweb.dk Ekspert
22. marts 2018 - 13:52 #7
(utested)
<?php
$a = array(1677, 1734);
if (!(in_array($currentid, $a, true))) {
    echo $currentid . " er ikke arrayet" ;
}
?>
Avatar billede totalpc Seniormester
22. marts 2018 - 14:27 #8
olsensweb> Det var jeg også kommet frem til ud fra eksempler, men det virker ikke.
Avatar billede totalpc Seniormester
22. marts 2018 - 14:57 #9
Nå det her virker:
$a = array(1677, 1734);
if (!in_array($currentid, $a))

Kan du forklare hvorfor det her virker i forhold til din med true parameteren?
Avatar billede jakobdo Ekspert
22. marts 2018 - 15:08 #10
, true betyder den er strict..
Det vil sige.

123 != '123'

123 = tal
'123' = 123, men som en streng.

uden , true, vil '123' == 123 være sandt.
Med, true, vil '123' == 123 være falskt.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester