Gå til innhold

Slettet: Hvordan bruke...


Anbefalte innlegg

Videoannonse
Annonse

Huff og huff. Ikke bare bør det være litt mer ryddig (hvor er intentering i koden?), som poengtert over, men det kan være en stor fordel å faktisk skjønne det man selv skriver, i dette tilfellet operatorer. Koden slik den er skrevet vil aldri fungere som tenkt. !1|2|3 betyr på ingen måter «alt annet enn 1, 2 og 3». ! (not/ikke) og | (or/eller) er binære operator, og resultatet blir derfor 3 (!1 = false og en or-operasjon på 0/false, 2 og 3 gir 3).

Endret av Ernie
Lenke til kommentar

Nei, det vil ikke fungere. Som sagt, | er en binær operator, ikke logisk. F.eks blir 1 | 2 = 3 fordi binært sett får du 01 | 10 = 11 (i en eller-operasjon blir resultatet alle satte bit fra hvert av tallene). Et litt mer komplisert eksempel: 13 | 11 = 15 (binært sett: 1101 | 1011 = 1111)

 

|| eller OR er derimot logiske operatorer hvor et av uttrykkene må være sant. Derfor blir 1 || 2 = true, ikke 3. Derfor er man også pent nødt til å si ($var == 1 || $var == 2) fordi det sjekker om trykket ($var == 1) eller ($var == 2) er sant. ($var == 1|2) vil derimot sjekke om $var == 3.

 

For ordensskyld vil ikke $var == 1||2 fungere heller fordi det er ekvivalent med å si ($var == 1 || true) som alltid gir true.

Endret av Ernie
  • Liker 1
Lenke til kommentar
Gjest
Dette emnet er stengt for flere svar.
×
×
  • Opprett ny...