PDA

View Full Version : [PHP]Ma dove sbaglio non capisco?


Diego_Armando
26-11-2006, 14:46
Ciao!
Ho un problema..non riesco a capire dove sbaglio.. :cry:

Ho scritto una semplicissima classe in PHP. La classe comprende 2 funzioni, una per l'inizializzazione di un array e una per la stampa a video di un suo valore.

Il codice è:

<?php

class squadra
{

var $conn;
var $DD;

function connetti() {

include '../config.php';

$connessione = mysql_connect($host,$user,$password) or die("Impossibile collegarsi al server MySQL.");

mysql_select_db($dbname,$connessione) or die("Impossibile selezionare il database $dbname");

return $connessione;

}

function constructor()
{
$conn = $this->connetti();

$squadra = "Sq1";

$query = mysql_query("SELECT * FROM giocatori LIMIT 1",$conn);
$a = mysql_fetch_row($query);

$DD = array("marcatura" => $a[0], "corsa" => $a[1]);

$ba=$DD["marcatura"];
echo "$ba";
}

function test()
{

$ba=$DD["marcatura"];
echo "<br>QUI: $ba";
}

}
$test1 = new squadra;
$test1->constructor();
$test1->test();
?>

Se eseguo la classe ottengo:

10
QUI:

Non capisco dopo QUI: dovrei avere il valore 10 invece non lo stampa..

Dove sbaglio? :confused:

U-Boat
26-11-2006, 18:46
Se non ricordo male: visto che in php le variabili non vanno dichiarate, quando usi le variabili $DD ( :rolleyes: ) e $conn all'interno di funzioni, secondo l'interprete quelle non sono le variabili di istanza, ma sono variabili locali.
Per riferirti alle variabili di istanza usa sempre esplicitamente $this.

Poix81
27-11-2006, 07:25
esatto.
io nella funzione connetti() non farei
return $connessione;
ma piuttosto
$this->conn = $coonnessione;
altrimenti la variabile $conn della classe non la usi mai!

stessa cosa per l'altra variabile.

ciao ciao

Diego_Armando
27-11-2006, 23:40
Grazie mille!
Ora funziona perfettamente..Come al solito precisi e puntuali..Grazie