[PHP] OR Functie of ||

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lol lol

lol lol

29/04/2009 22:39:00
Quote Anchor link
Hallo allemaal,

Ik ben bezig met een scriptje om de grootste gemene deler uit te rekenen, nu moet ik daar bij ook kijken of de gebruiker wel een getal heeft ingevuld en mag dus niet bestaan uit letters. (en ja, het is voor school) Maar dit heb ik allemaal voor elkaar, alleen zit mij iets dwars, nu weet ik niet zeker of dit wel goed is, want het werkt wel, alleen heb ik deze functie || gebruikt om te kijken of de gebruiker wel getallen heeft ingevuld, alleen heb ik (mijn gebruikte OR functie nooit eerder gezien) en wil ik aan jullie vragen of het wat uitmaakt of ik | gebruik of ||, een verschil in zit.

Misschien allemaal een beetje raar uitgelegd, maar hier onder het script.


Nogmaals, het script werkt wel, laat alleen getallen door, alleen wil ik weten of 1 | wel mag. Hierbij moet ik nog wel even zeggen, zodra ik het verander in 2 ||, werkt mijn script niet meer goed.

Excuses voor het slecht uitleggen.
Gewijzigd op 01/01/1970 01:00:00 door Lol lol
 
PHP hulp

PHP hulp

22/12/2024 22:26:22
 
Nicoow Unknown

Nicoow Unknown

29/04/2009 22:49:00
Quote Anchor link
Dit heeft volgens mij specifiek te maken met de functie Ctype Digit.
Maar ik vind het zowieso een vreemde constructie.
als $A of $B een getal is, dan is het goed,, anders niet.
Oftwel,
$A = 5;
$B = 'W';

Laat hij ook gewoon goed door.
Volgens mij moet je hier eerder een AND gebruiken
 
Lol lol

lol lol

29/04/2009 22:59:00
Quote Anchor link
nico schreef op 29.04.2009 22:49:
Dit heeft volgens mij specifiek te maken met de functie Ctype Digit.
Maar ik vind het zowieso een vreemde constructie.
als $A of $B een getal is, dan is het goed,, anders niet.
Oftwel,
$A = 5;
$B = 'W';

Laat hij ook gewoon goed door.
Volgens mij moet je hier eerder een AND gebruiken


Zodra ik AND doe, dan geeft hij continue "Deze karakters mogen niet!", zodra ik 1 | gebruik, pakt hij alles goed. En ik heb hier specifiek gekozen voor ctype digit, omdat is_numeric ook wiskundige notaties door laat, zoals 1a, en dat mag niet.
Daarom gebruik ik eigenlijk ook weer OR omdat AND dus gewoon weg niet werkt. Tenzij ik iets verkeerd heb geplaatst.
 
Nicoow Unknown

Nicoow Unknown

29/04/2009 23:03:00
Quote Anchor link
if (ctype_digit($A) && ctype_digit($B))
{

}

Zo beter?
Ik denk namelijk dat hij bij jou een if in een if doet
if /*ctype_digit**altijd TRUE**\ AND /*$A of $B is TRUE*\

Je moet wel zorgen dat je functie aan 1 stuk door is geschreven, zonder spatie.
 
Lol lol

lol lol

29/04/2009 23:07:00
Quote Anchor link
nico schreef op 29.04.2009 23:03:
if (ctype_digit($A) && ctype_digit($B))
{

}

Zo beter?
Ik denk namelijk dat hij bij jou een if in een if doet
if /*ctype_digit**altijd TRUE**\ AND /*$A of $B is TRUE*\

Je moet wel zorgen dat je functie aan 1 stuk door is geschreven, zonder spatie.


Ok, dat werkt perfect, bedankt!
Had hier achter af zelf ook wel aankunnen denken -_-.
 
Willem Jan Z

Willem Jan Z

29/04/2009 23:41:00
Quote Anchor link
Google, php.net, nieuw voor je?
| is een Bitwise operator
En kan je dus niet zomaar gebruiker om te kijken of iets een getal is

Kijken of iets een getal is, doe je met de daarvoor bestemde functies, zoals ctype_digit, maar ook is_numeric of is_int zijn daarvoor te gebruiken. Lees dan wel even goed wat welke functie doet. Wel zo handig, omdat te weten waar je mee bezig bent :)
 

30/04/2009 09:58:00
Quote Anchor link
nico schreef op 29.04.2009 22:49:
Dit heeft volgens mij specifiek te maken met de functie Ctype Digit.

Nee, heeft te maken met Operator Precedence. Zie language.operators.precedence en language.operators.logical voor uitleg.
Zoals WillemJan Z telt | niet mee, omdat dat bitwise is.
Gewijzigd op 01/01/1970 01:00:00 door
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.