Visualizzazione risultati 1 fino 10 di 10

Discussione: [PHP] Metodo statico

  1. #1
    tryhere non è connesso AlterVistiano
    Data registrazione
    19-09-2007
    Messaggi
    757

    Predefinito [PHP] Metodo statico

    Quando si usa un metodo statico?

  2. #2
    Guest

    Predefinito

    Cosa sarebbe? Vuoi dire $_POST, $_GET o altro?? Ciao!

  3. #3
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    In PHP hanno poco senso, perchè esistono le funzioni globali (come nel C)

    In altri linguaggi, che sono completamente ad oggetti come per esempio il Java, sono utilizzate al posto delle funzioni per eseguire delle operazioni che non richiedono l'appartenenza ad un oggetto

    Sono chiamate anche funzioni stand-alone o metodi di classe, nei linguaggi come il PHP si usano per motivi
    puramente stilistici, non c'è secondo me nessun altro motivo che le renda utili

  4. #4
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Be dipende.
    Sono comunque funzioni legate alla classe che non necessitano dello stato dell'oggetto per funzionare.
    L'utilità è che non devi creare l'oggetto (new) per usarle.

    Mettiamo che tu hai un sistema con utenti, ed a ogni utente è assegnato un avatar.
    Il file avatar è chiamato mettiamo con la concatenazione di ava_NOMEUTENTE.gif

    Inizieresti facendo una classe utente con alll'interno la funzione getAvatar() che restituisce la gif.
    Ma poi utilizzandola potresti trovarti con la lista di nome utente e la necessità di stampare i loro avatar.
    Aggiungendo una funziione statica getAvatarStatica(nomeutente) (riutilizzata dalla getAvatar()) avresti l'avatar senza dover creare un istanza della classe Utente per ogni user.
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  5. #5
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Da come lo hai scritto non è molto chiaro ma provo a cogliere cosa intendevi dire:

    "Un metodo statico è come una funzione globale e in più può accedere alle variabili (e metodi) di istanza private "

    È quello che intendevi tu?

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da tryhere Visualizza messaggio
    Quando si usa un metodo statico?
    In OOP un metodo statico può essere usato quando:
    - non dipende dagli oggetti che rappresenta
    - utilizza risorse che vengono condivise da tutti gli oggetti dello stesso tipo

    Ti faccio un esempio concreto (il classico esempio da libri di testo di OOP): devi realizzare un sistema che permetta la gestione di conti correnti bancari, ciascun conto corrente ha un proprio numero (unico per ciascun conto) e un proprio saldo.
    Alla creazione dell'oggetto "conto", inizializzerai opportunamente il suo saldo e il suo numero. Per il saldo non ci sono problemi, basta una semplice assegnazione, per il numero, invece, ti serve conoscere qual è stato l'ultimo numero che hai assegnato e dare al nuovo conto quel numero, aumentato di 1: quest'ultima operazione può essere svolta solo attraverso un metodo statico (e una variabile statica di supporto).

    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    L'avatar di binarysun
    binarysun non è connesso Utente storico
    Data registrazione
    02-07-2004
    Messaggi
    2,017

    Predefinito

    Citazione Originalmente inviato da AlexKidd Visualizza messaggio
    "Un metodo statico è come una funzione globale e in più può accedere alle variabili (e metodi) di istanza private "
    Si, il problema è che non ricordavo se PHP5 gestisce l'overloading , e quindi ho chiamato la funzioni statica "getAvatarStatico"
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

    [Gradient Text]
    [Su che server sei?]
    ->flickr

  8. #8
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Citazione Originalmente inviato da binarysun Visualizza messaggio
    Si, il problema è che non ricordavo se PHP5 gestisce l'overloading , e quindi ho chiamato la funzioni statica "getAvatarStatico"
    No, non gestisce l'overloading, ogni metodo si distingue dagli altri solo per il nome indipendentemente dal numero di parametri

    Comunque si può simulare un overloading utilizzando il metodo magico _call()

  9. #9
    Guest

    Predefinito

    Citazione Originalmente inviato da AlexKidd Visualizza messaggio
    Comunque si può simulare un overloading utilizzando il metodo magico _call()
    Già, spero proprio che con la prossima versione migliorino l'implementazione dell'OOP.

  10. #10
    L'avatar di AlexKidd
    AlexKidd non è connesso Altervistiano Junior
    Data registrazione
    09-02-2007
    Messaggi
    516

    Predefinito

    Difficile che ciò avvenga senza snaturare il linguaggio stesso

    L'attuale implementazione è la migliore perchè sembra una naturale estensione delle basi del linguaggio

    Sono comunque d'accordo che l'uso di _call(), _get() e _set() sia parecchio confusionario se mischiato a definizioni di metodi e variabili reali

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •