Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    tipizzazione / scrivere una classe BENE

    mi stavo chiedendo qual'e' il metodo migliore per implementare una classe, soprattutto per quello che riguarda le proprietà ed il costruttore.

    ecco come faccio io:

    Codice PHP:
    class miaclasse
    {
      static 
    $num;

      public 
    $prop1;
      public 
    $prop2;

      private 
    $codice;

      
    pucblic function __construct$prop1$prop2 )
      {
        
    $this->prop1 = (string)$prop1;
        
    $this->prop2 = (array)$prop2;
      }

      
    /* ... */

    come vedete, mi piacerebbe anche "tipizzare" le variabili che utilizzo. purtroppo non ho trovato idea migliore che effettuare tale tipizzazione al momento dell'assegnamento a $this.

    mi piacerebbe sapere voi come fate!
    si vivono molte vite e si muore una volta sola

  2. #2
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Più specificatamente, cosa intendi per "tipizzare"?


  3. #3
    per tipizzare intendo: fare in modo che l'utente non passi al costruttore un tipo di dato differente da quello che voglio io.

    ed indirettamente: aprire un file contenente una classe e capire subito con che tipo di dati lavora

    per tipo di dati intendo quelli che puo' gestire il php: string, integer, float, array, object (che ho dimenticato!?)
    si vivono molte vite e si muore una volta sola

  4. #4
    Utente di HTML.it L'avatar di Gab-81
    Registrato dal
    Nov 2005
    Messaggi
    558
    Io credo che il grosso limite, in questo senso, sia il fatto che PHP non è tipizzato, quindi a meno di controlli da parte dell'utente, credo non si possa far nulla in tal senso...


  5. #5
    infatti, PHP hqa un controllo cosiddetto debole sui tipi di dato; penso che saprai che ad esempio uan variabile $var = "9" può essere trattato sia come stringa che come numero. Ad esempio

    echo "9" + 5 scriverà 14 cioè la somma dei due numeri convertendo il primo in numero. Quindi la tipizzazione deid ati in PHP è pressocchè vana.

  6. #6
    no. non e' vana. prendi questo codice ad esempio:

    Codice PHP:
    function provastring $a )
    {
      echo 
    $a;
    }

    prova10 ); 
    produrra il seguente errore:
    Catchable fatal error: Argument 1 passed to prova() must be an instance of string, integer given, called in ... on line ... and defined in ... on line ...

    dopo che centra, se dentro alla funzione CHE IO HO DEFINITO, uso le variabili in modo diverso da quello che SEMPRE IO m'ero prestabilito, beh allora...!

    pero' all'utente della funzione (classe, metodo, etc...) ho imposto un bel vincolo.

    credo sia buona regola tipizzare, ma sono curioso del vostro parere
    si vivono molte vite e si muore una volta sola

  7. #7
    hai ragione anzi è davvero una brillante idea. E vedo dall'esempio che hai dato che è un errore CATCHABLE: pertanto penso che l'unico modo per tipizzare variabili in PHP sia quello di usare i costrutti try...catch in cui verificare il numero di errore commesso:

    Codice PHP:
    function prova$a )
    {
      try { 
        
    $b string $a;
      } catch (
    Exception $e) {
           echo 
    $e->getMessage(), "\n";
      }
    }

    prova10 ); 

  8. #8
    l'idea del try e catch e' ancora piu' avanti della mia idea...good

    cmq io ancora rimango dubbioso su come gestire l'"apertura" di una classe.
    si vivono molte vite e si muore una volta sola

  9. #9
    cosa intendi coem "apertura" di una classe?

  10. #10
    cosa intendi coem "apertura" di una classe?
    intendo definizione delle proprietà e settaggio delle stesse.
    e' una domanda larga lo so (il mio grande difetto :rollo: domande troppo ampie)!

    non so, una volta aperta la classe:
    Codice PHP:
    class miaclasse 

    definite le proprietà che gli oggetti della classe avranno:
    Codice PHP:
      public static $prop1;
      public static 
    $prop2;
      
    /* ... */ 
    oppure le definite direttamente nel costruttore?
    si vivono molte vite e si muore una volta sola

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.