Thread: PHP: Vergelijking van Strings
-
26-04-2004, 22:10 #1Approved 9-lifer
- Registered
- 15/08/03
- Location
- Moorsele
- Posts
- 2,552
- iTrader
- 10 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/18
PHP: Vergelijking van Strings
De Code:
De Output:PHP Code:$string_1 = "00008";
$string_2 = "007";
$string_3 = "00008-OK";
if ($string_2 < $string_1)
print("$string_2 is less than §string_1<br>");
if ($string_3 < $string_2)
print("$string_3 is less than §string_2<br>");
if ($string_1 < $string_3)
print("$string_1 is less than §string_3<br>");
Die laatste begrijp ik dus niet...007 is less than 00008 // numeric comparison
00008-OK is less than 007 // string comparison
00008 is less than 00008-OK // string comparison - contradiction!
*EDIT* Ik ben PHP aan het leren. Dit script heeft geen bedoeling maar is een voorbeeld uit "PHP4 - Het Complete Boek"Last edited by 50Euro; 26-04-2004 at 23:22.
Nintendo ID & PSN & Xbox Live & Steam: FiFtyEurono votes
-
-
26-04-2004, 23:08 #2
wa is de bedoeling van je script ?
no votes
-
26-04-2004, 23:09 #3
heeft wrschijnlijk te maken met ascii-code enzo
no votes
-
26-04-2004, 23:26 #4
de mathematische vergelijkingsoperatoren kunnen geen tekst vergelijken.
wat je kan doen is het volgende
verbeter me indien ik verkeerd benPHP Code:<?php
$string1 ="abcdef";
$string2 = "abcde";
$string3 = "abcedefghei";
$stringlen1 = strlen($string1);
$stringlen2 = strlen($string2);
$stringlen3 = strlen($string3);
if ($stringlen2 < $stringlen1) {
print("$string2 is less than string1<br>");
}
if ($stringlen3 < $stringlen2) {
print("$string_3 is less than §string_2<br>");
}
if ($stringlen1 < $stringlen3) {
print("$string_1 is less than §string_3<br>");
}
?>no votes
-
26-04-2004, 23:42 #5Approved 9-lifer
- Registered
- 25/07/02
- Location
- Aalst
- Posts
- 13,457
- iTrader
- 6 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/156
de twee eerste zijn pure 'getallen' en php zal bij logische operatoren hun waarde vergelijken
bij de derde vergelijking hebt ge één van de twee als 'string' (TEXT) en NIET een getal, php zal dus de lengte van de strings vergelijken
00008-ok heeft meer letterkes dan 00008 dus ...
dat probeert uw scriptje te tonensafir Thom4sno votes
-
27-04-2004, 00:01 #6Approved 9-lifer
- Registered
- 15/08/03
- Location
- Moorsele
- Posts
- 2,552
- iTrader
- 10 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/18
Ach zo,Originally posted by sneax
de twee eerste zijn pure 'getallen' en php zal bij logische operatoren hun waarde vergelijken
bij de derde vergelijking hebt ge één van de twee als 'string' (TEXT) en NIET een getal, php zal dus de lengte van de strings vergelijken
00008-ok heeft meer letterkes dan 00008 dus ...
dat probeert uw scriptje te tonen
maar dan klopt de tweede 'if', "00008-OK is less than 007", toch niet?Nintendo ID & PSN & Xbox Live & Steam: FiFtyEurono votes
-
27-04-2004, 00:07 #7Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
Als je strings vergelijkt gaat PHP (en eigenlijk eender welke andere taal die 'k ken) karakter per karakter vergelijken, vandaar dat "00008" kleiner is dan "007" (0 < 7). Aangezien in 't geval "00008" vergelijken met "00008-ok" er in 't tweede geval nog extra karakters staan na het gelijke deel (00008), is de eerste string de kleinste.
Bekijk anders de strcmp functie van C eens, dan zal je snappen waarom het zo is.PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
-
28-04-2004, 12:15 #8Approved 9-lifer
- Registered
- 15/08/03
- Location
- Moorsele
- Posts
- 2,552
- iTrader
- 10 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/18
In veel boeken en site's staat verwezen naar C. Lijken die talen zo op elkaar?
Is het nodig om eerst c aan te leren? Ik ben eigenlijk gewoon van HTML naar PHP gegaan, met een beetje Flash tussen...Nintendo ID & PSN & Xbox Live & Steam: FiFtyEurono votes
-
28-04-2004, 12:16 #9Member
- Registered
- 18/11/02
- Location
- Eke, België
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
no votes
-
28-04-2004, 15:03 #10Member
- Registered
- 12/10/02
- Location
- mars
- Posts
- 14,319
- iTrader
- 2 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
wrom naar een c-functie verwijzen als deze in PHP ook bestaat???
http://be.php.net/strcmpno votes
-
28-04-2004, 15:43 #11Approved 9-lifer
- Registered
- 15/08/03
- Location
- Moorsele
- Posts
- 2,552
- iTrader
- 10 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/18
Oké bedankt! ik snap het nu wel!
Ps. Die PHP code is er toch niet op vooruitgegaan met het nieuwe forum...Nintendo ID & PSN & Xbox Live & Steam: FiFtyEurono votes
-
28-04-2004, 19:16 #12Member
- Registered
- 17/07/02
- Location
- Sol System
- Posts
- 10,064
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 27/78
Omdat, mijn beste, strcmp een C functie is en de strcmp functie in PHP daar gewoon een wrapper rond is
.
En de uitleg ivm strcmp is bij PHP veel te summier, deze uitleg is veel duidelijker imho.PSN: dJeezBE - Delicious bookmarks
Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alienoPastafarian by choiceno votes
