PDA

View Full Version : PHP] da classe a classe


Pro7on
18-09-2007, 13:21
una domanda io ho due file che contengono una classe a testa...

ora una classe e la conMYSQL per connettersi a mysql ed eseguire le query

l'altra e la autenticazione


come faccio a usare un metodo di una nell'altra?

es:

Metodo di Autenticazione:

login($username){
$con->sqlQuery($username)

}


possibile?

dad_89
18-09-2007, 14:14
Includi il file che contiene il metodo che ti interessa e nella calsse in cui usi il metodo in questione fai ereditare tutte le pecurialità della classe presa in cosiderzaione.
Cerca di seguire questo esempio, se non capisci qualcosa chiedi pure ;)

<?php
//la classe da includere -> include("tua.classe.php");
class ProvaUno {
function estendoUno() {
echo "Ciao ";
}
}

class ProvaDue extends ProvaUno {
var $a;
function estendoDue($a) {
parent::estendoUno();
echo $a . "!";
}
}

$inz = new ProvaDue();
$inz2 = $inz->estendoDue("DaD");
echo $inz2;

// Output -> Ciao DaD!
?>

Pro7on
19-09-2007, 06:42
Includi il file che contiene il metodo che ti interessa e nella calsse in cui usi il metodo in questione fai ereditare tutte le pecurialità della classe presa in cosiderzaione.
Cerca di seguire questo esempio, se non capisci qualcosa chiedi pure ;)

<?php
//la classe da includere -> include("tua.classe.php");
class ProvaUno {
function estendoUno() {
echo "Ciao ";
}
}

class ProvaDue extends ProvaUno {
var $a;
function estendoDue($a) {
parent::estendoUno();
echo $a . "!";
}
}

$inz = new ProvaDue();
$inz2 = $inz->estendoDue("DaD");
echo $inz2;

// Output -> Ciao DaD!
?>


mitico ;) ho capito perfettamente :D


ora un'altra domanda se è possibile...???

in php e possibile mettere due metodi costruttori?

es :


function __Construct($a. $b){}
function __Construct(){}


se io istanzio $c = new db(); --> va automaticamente sul sec costruttore mentre se specificavo $a , $b mi andava sul primo!

Thx;)

ianaz
19-09-2007, 10:17
No, purtroppo non é come in Java :)

Puoi sempre fare

function __Construct($a = false, $b = false){
if(!$a && !$b){
$this->lanciaFunzioneUno();
}
else $this->lanciaFunzioneDue();
}

così che facendo new NomeClasse(); ti lancia la funzione uno, altrimenti la due :)