1. #1
    50Euro's Avatar
    Registered
    15/08/03
    Location
    Moorsele
    Posts
    2,552
    iTrader
    10 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/18

    Post PHP: Vergelijking van Strings

    De Code:
    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>"); 
    De Output:
    007 is less than 00008 // numeric comparison
    00008-OK is less than 007 // string comparison
    00008 is less than 00008-OK // string comparison - contradiction!
    Die laatste begrijp ik dus niet...

    *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: FiFtyEuro
    no votes  

  2. #2
    icerulez's Avatar
    Registered
    17/07/02
    Location
    Evergem
    Posts
    844
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    wa is de bedoeling van je script ?
    no votes  

  3. #3
    `SeriOUs's Avatar
    Registered
    17/07/02
    Location
    Te Gènk
    Posts
    1,691
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    1/1
    heeft wrschijnlijk te maken met ascii-code enzo
    no votes  

  4. #4
    Dece's Avatar
    Registered
    25/10/02
    Location
    Ninove
    Posts
    829
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    de mathematische vergelijkingsoperatoren kunnen geen tekst vergelijken.
    wat je kan doen is het volgende
    PHP 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>");
    }
    ?>
    verbeter me indien ik verkeerd ben
    no votes  

  5. #5
    sneax's Avatar
    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 tonen
    safir Thom4s
    no votes  

  6. #6
    50Euro's Avatar
    Registered
    15/08/03
    Location
    Moorsele
    Posts
    2,552
    iTrader
    10 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/18
    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
    Ach zo,

    maar dan klopt de tweede 'if', "00008-OK is less than 007", toch niet?
    Nintendo ID & PSN & Xbox Live & Steam: FiFtyEuro
    no votes  

  7. #7
    dJeez's Avatar
    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 alieno
    Pastafarian by choice
    no votes  

  8. #8
    50Euro's Avatar
    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: FiFtyEuro
    no votes  

  9. #9

    Registered
    18/11/02
    Location
    Eke, België
    Posts
    2,448
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by 50Euro
    This quote is hidden because you are ignoring this member. Show
    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...

    Da's niet nodig nee, blijf maar bij PHP of de kans bestaat dat ge helemaal niks meer snapt ervan
    no votes  

  10. #10

    Registered
    12/10/02
    Location
    mars
    Posts
    14,319
    iTrader
    2 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by dJeez
    This quote is hidden because you are ignoring this member. Show
    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.
    wrom naar een c-functie verwijzen als deze in PHP ook bestaat???
    http://be.php.net/strcmp
    no votes  

  11. #11
    50Euro's Avatar
    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: FiFtyEuro
    no votes  

  12. #12
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Quote Originally Posted by killgore
    This quote is hidden because you are ignoring this member. Show
    wrom naar een c-functie verwijzen als deze in PHP ook bestaat???
    http://be.php.net/strcmp
    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 alieno
    Pastafarian by choice
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in