Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2006
    Messaggi
    188

    Comportamenti incoerenti in script su identità ed uguaglianza

    Buongiorno a tutti,
    Sto studiando gli operatori relazionali e durante un esercizio, mi sono imbattuto in un
    comportamento inaspettato:
    Questo codice
    <?php
    $number = 54;
    $stringa = "54";
    if ($number==$stringa)
    {
    print('$number e $stringa sono uguali' . "
    ");
    restituisce, come deve essere,:
    "$number e $stringa sono uguali"
    }

    Quest'altro codice:
    <?php
    $number = 54;
    $stringa = "54";
    if ($number===$stringa)
    {
    print('$number e $stringa sono identici' . "
    ");
    }
    non mi restituisce nulla... pagina bianca!!

    Come mai?

    Grazie e, come sempre, a presto.

  2. #2
    devi partire dal presupposto che in php praticamente tutto è stringa e che per avere un dato preciso puoi usare le funzioni dedicate (is_string, is_int, _is_float, etc ) oppure, per confrontare, devi usare === se vuoi essere certo che i dati siano identici e che anche il tipo di dato sia identico.


    true == 1

    false == 0

    "12" == 12


    tutte vere ...



    true === 1
    false === 0
    "12" === 12

    tutte false



    non a caso le funzioni come strpos o altre che possono ritornare un valore uguale a 0 consigliano sempre di verificare l'eventuale mancato risultato con === false


    if(strpos("abc", "a"))
    echo "a è presente";


    errato ...


    if(strpos("abc", "a") !== false)
    echo "a è presente";


    giusto per introdurre anche il !== ... che sarebbe diverso per dato e per tipo


    [x ot] e tutto senza theta join [/x ot]
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.