Visualizzazione risultati 1 fino 6 di 6

Discussione: [PHP] Operazione su matrice di oggetti

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

    Predefinito [PHP] Operazione su matrice di oggetti

    Ho un array bidimensionale di oggetti Object.
    Vorrei creare un metodo scambia(Object o) della classe Object in modo tale che eseguendo:
    array[i][j].scambia(array[x][y]) i due oggetti venissero scambiati di posizione nell'array.
    Come posso fare?

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

    Predefinito

    Con un singolo metodo (appartenente ad uno dei due oggetti interessati nell'operazione) quello che vuoi fare è impossibile

    devi utilizzare per forza una funzione globale (o comunque non appartenente alla classe Object)

    oppure incapsulando gli oggetti in classi che simulano il funzionamento di una matrice e agendo con metodi definiti in quest'ultima classe
    Ultima modifica di AlexKidd : 10-08-2009 alle ore 21.10.46

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

    Predefinito

    Cosa intendi per incapsulare gli oggetti in classi che simulano il funzionamento di una matrice?

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

    Predefinito

    Una cosa del genere (più o meno)

    Codice PHP:
    class Matrice
    {
    private
    $array;

    public
    addObj(Obj $o, $i, $j)
    {
    $array[$i][$j]=$o;
    }

    public
    getObj($i, $j)
    {
    return
    $array[$i][$j];
    }

    public
    delObj($i, $j)
    {
    unset(
    $array[$i][$j]);
    }

    public
    swapObj($fi,$fj,$ti,$tj)
    {
    $tmp=$array[$ti][$tj];
    $array[$ti][$tj]=$array[$fi][$fj];
    $array[$fi][$fj]=$tmp;
    }

    }

    puoi aggiungere, rimuovere, estrarre e scambiare di posizione gli elementi della matrice

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

    Predefinito

    Posso richiamare ad esempio il metodo addObj della classe Matrice all'interno di un metodo della classe degli oggetti che formano l'array?

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

    Predefinito

    Si se ogni oggetto ha un riferimento, al suo interno, che punta alla matrice che li contiene

    puoi scegliere se passare il riferimento al momento in cui viene creato l'oggetto oppure passarlo ogni volta nel metodo che che richiama addObj (questa seconda soluzione è più pulita se hai più di una matrice)

Regole di scrittura

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