Visualizzazione risultati 1 fino 2 di 2

Discussione: Funzione non modifica parametro

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

    Predefinito Funzione non modifica parametro

    La funzione move riceve come parametro un array che dovrebbe essere modificato invece dopo l'esecuzione del codice seguente l'array rimane immutato. Perchè?
    Codice:
    public function move ($x, $y, $board) {
        $board[$y][$x]=new B();
    }  
    $b=array();
    for($i=0;$i<3;$i++)
    for($j=0;$j<3;$j++)
    $b[$i][$j]=new A();
    $b[1][1]=new B();
    $b[1][1]->move(2,2,$b);
    for($i=0;$i<3;$i++)
    for($j=0;$j<3;$j++)
    echo $b[$i][$j];

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

    Predefinito

    perchè la variabile è stata passata per valore e non riferimento
    Per passare l'array board per riferimento devi fare così

    public function move ($x, $y, &$board) {
    "L'intelligenza è una pianta che va curata continuamente.
    Dovreste vedere com'è bello, il mio bonsai."
    Rat-man®

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

Regole di scrittura

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