Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    50

    Dichiarazione Tipo Variabile

    E' possibile (in php) dichiarare il tipo di una qualsiasi variabile?

    se scrivo

    $variabile = "prova";

    so che php la tratta come stringa senza necessità di dichiarare nulla. Però mi chiedevo se era possibile un approccio un po più rigido dichiarando il tipo di ogni variabile.

    In pratica qualcosa tipo:

    int $variabile;


    e chiaramente mi aspetterei un errore quando cerco di assegnare una striga laddove è previsto un intero.


    $variabile = "prova";

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    puoi fare una cosa di questo tipo, però in caso di diversa assegnazione nn otterrai errori:
    codice:
    $variabile=(int) "";
    var_dump($variabile);
    
    $variabile=(string) "";
    var_dump($variabile);


    think simple think ringo

  3. #3
    Oppure controllare che sia del tipo voluto prima di usarla....

    is_string($var); rende TRUE/FALSE

    is_bool(), is_int(), is_integer(), is_float(), is_real(), is_object() e is_array().


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di JHammer
    Registrato dal
    Sep 2004
    Messaggi
    754
    Se provieni da C,C++,java capisco il tuo sconcerto...

    Il PHP non è tipizzato per cui puoi fare quello che vuoi...cioè per esempio castare implicitamente numeri e stringhe (i numeri hanno la precedenza...)

    esempio:

    $i ="3";
    $j = 0.14;
    $k = $i+$j;
    echo "Pigreco = ".$k;

    La notazione di Marketto rende esplicito il casting (più chiaro così) ma in effetti non è una dichiarazione.

    Per esempio

    $i = (int)"3"; // cast stringa -> intero
    $s = (string)3; // cast intero -> stringa

    Tecnicamente dovresti vedere le variabili come degli 'smart pointers' (C++,java) a cui puoi associare quello che vuoi.


  5. #5
    Utente di HTML.it L'avatar di JHammer
    Registrato dal
    Sep 2004
    Messaggi
    754
    [supersaibal]Originariamente inviato da piero.mac
    Oppure controllare che sia del tipo voluto prima di usarla....

    is_string($var); rende TRUE/FALSE

    is_bool(), is_int(), is_integer(), is_float(), is_real(), is_object() e is_array().

    [/supersaibal]
    Anche!!!

  6. #6

    Re: Dichiarazione Tipo Variabile

    [supersaibal]Originariamente inviato da jann
    mi chiedevo se era possibile un approccio un po più rigido dichiarando il tipo di ogni variabile.[/supersaibal]
    No, perché il PHP ha tipizzazione debole.
    Se vuoi una tipizzazione forte devi cambiare linguaggio.

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.