[gelöst] Browsergame - direktes 1 vs. 1



  • Shade Of Mine schrieb:

    nein. so ein cast schlägt nie fehl:

    v==(int)v==(int)v
    ist zb ein sehr naiver test ob $v eine zahl ist.

    Kann man so nicht sagen

    $v = (int)"Hallo" ? "ok" : "failed";
    

    ... ergibt zum Beispiel "failed".

    LG



  • RandomAccess85 schrieb:

    $v = (int)"Hallo" ? "ok" : "failed";
    

    Das ist etwa das Glieche, wie:

    $v=0;
    echo ($v ? "ok" : "failed");
    

    Das Problem ist einfach, dass 0 mit false gleichgesetzt wird. Da "Hallo" keine Zahl enthaelt, wird das zur 0 und damit bei der Abfrage als false gewertet. Anders wuerde es damit laufen:

    $v = (int)"Hallo";
    if($v!==false) echo "ok";
    else echo "failed";
    

    Wichtig ist der !== Operator.


  • Mod

    RandomAccess85 schrieb:

    Shade Of Mine schrieb:

    nein. so ein cast schlägt nie fehl:

    v==(int)v==(int)v
    ist zb ein sehr naiver test ob $v eine zahl ist.

    Kann man so nicht sagen

    $v = (int)"Hallo" ? "ok" : "failed";
    

    ... ergibt zum Beispiel "failed".

    Und?
    Der cast ist nicht fehlgeschlagen, du hast 0 als Wert erhalten.



  • Hallo,

    na um die Fehlerbehandlung kann man sich - wenn man schon an der Stelle ist - auch selbst kümmern.

    $v = (int)"Hallo" ? "ok" : "failed"; // $v = failed
    $v = (int)1 ? "ok" : "failed";       // $v = ok
    

    *zu faul zum Einloggen

    LG


  • Mod

    RandomAccess85* schrieb:

    Hallo,

    na um die Fehlerbehandlung kann man sich - wenn man schon an der Stelle ist - auch selbst kümmern.

    $v = (int)"Hallo" ? "ok" : "failed"; // $v = failed
    $v = (int)1 ? "ok" : "failed";       // $v = ok
    

    *zu faul zum Einloggen

    LG

    $v = (int)0 ? "ok" : "failed"; // v=failedv = failed v = (int)"123abc" ? "ok" : "failed"; // $v = ok



  • Ok,

    ich verstehe den Einwand 👍

    LG


Anmelden zum Antworten