0 (zero) ist nicht is_numeric() oO?

  • Man findet ja immer wieder mal schöne Dinge bei PHP heraus.
    Wie zB eine $var die mit 0 (zero) oder false das gleiche ist, und als "leer" gilt.
    So wird beim Prüfen - if(empty($var)) ein true zurückgegeben.
    Schön, null ist ja auch nix, also leer. =)


    Aber beim prüfen - if(!is_numeric($var)) bekommt man auch ein true. Also 0 (zero) ist nicht numeric ?
    Was ist da denn los?

  • Ich hab 0 zugewiesen.
    Ich dachte wenn ich schreibe $var = false; dann ist es ein boolean.
    Hab aber auch schon bemerkt, dass $var = 1; gleich true ist.


    btw - wie bekommt man eigentlich den Key eines Arrays, wenn man nicht weiss, ob der Key eine fortlaufende Nummer ist.
    bsp


    Ich, oder das Script, weiss an dieser Stelle, dass nur ein key/Datensatz drin ist.
    Aber ich/das Script weiss in diesem Moment den Key nicht.
    Ein foreach funtioniert, auch wenn nur ein Satz drin ist. Halte ich aber für falsch.
    Gibts sowas we "get_key" ?

  • $key = array_search($value, $array);



    und zu dem davor:

    Zitat

    Ich hab 0 zugewiesen.
    Ich dachte wenn ich schreibe $var = false; dann ist es ein boolean.


    wenn du 0 zuweist ist es eine zahl gerade noch mal getestet da hast du nicht 0 zugewiesen, und ja du dachtest schon immer richtig bei deiner vermutung xD


    Zitat

    Hab aber auch schon bemerkt, dass $var = 1; gleich true ist.


    naja gleich aber nur mit == bei === ist es nicht mehr gleich ;)



    hier damit kanst bischen herumspielen :)

    PHP
    <?php
    $var = 0;
    echo '$var ist ein/eine '.gettype($var)."<br/>"; 
    if($var){echo '$var  ist true';}
    else{echo '$var  ist false';}
    ?>
    //gibt bei 0 das hier aus
    //$var ist ein/eine integer
    //$var ist false
  • Schreck!!
    Hab gerade alle scripte nach ' == false' und ' == true' durchsuchen lassen ;D
    Zum glück keine treffer ;D
    Da hab ich bestimmt mal == verwendet, dann aber wieder überschrieben =)


    Mit array_search - danke!
    Muss ich aber noch bissl kaffee trinken. Irgentwie muss ich "eine Ebene rein".



    ausgabe:


    Verwirrend ;D

  • ob das möglich ist weiß ich nicht^^
    $key = array_search(''aaaa', $array[1]);
    key ist dann player_name.


    du willst wahrscheinlich aber die zahl da also die 1 hm

  • Ja genau - die 1 brauch ich ;D


    Es geht ja mit ner foreach


    Die Art ist aber irgentwie dumm ;D

  • key ... das wars ;D


    echo key($array);


    oder


    echo key($array[$a]);
    ect


    grade drüber gestolpert ;D


    Immer wieder schön, wie man alles in allem nutzen kann =)

    PHP
    $player_in_db[key($player_in_db)]['MB_ID'])

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!