Jo fast om jag vill skriva det inuti klass 1, går det? T.ex. har jag en klass för felhantering av mysql-operationer. Och inuti klass1 körs mysql-operationer, jag kan alltså inte hoppa ur klassen och skriva som du gör. Låt oss säga att jag befinner mig i en funktion i klass 1 och därifrån vill jag komma åt en metod/funktion i klass2 utan att först avsluta funktionen i klass1.
antingen får du skapa en instans av klass2 där du vill använda den eller får du skapa den tidigare och skick in den som en parameter till det ställer där du vill anropa den.
class Klass1
{
function f1($k2)
{
//Här vill jag anropa f2
$k2->f2();
}
}
class Klass2
{
function f2 ($id)
{
}
}
$kl2 = new Klass2();
$kl1 = new Klass1();
kl1->f1(&$kl2);
eller skicka in den som en parameter till konstruktorn i Klass1
class Klass1
{
var $k2;
function Klass1($k2)
{
$this->k2 = $k2;
}
function f1()
{
//Här vill jag anropa f2
$this->k2->f2();
}
}
class Klass2
{
function f2 ($id)
{
}
}
$kl2 = new Klass2();
$kl1 = new Klass1(&$k2);
kl1->f1();
<?PHP
class klass1 {
function klass1() {
$objKlass2 = new Klass2();
$objKlass2->skriv();
}
}
class klass2 {
function klass2() {
}
function skriv() {
echo "hej hej";
}
}
new klass1();
?>
Funkar fin fint utan att ha några parametrar..
EDIT! Koden i mitt första inlägg var ju naturligt vis menat att ligga där du skrev samma kommentar som jag använde i min kod, inte att det skulle vara sepparat utanför din klass och funktion!
Duffer..jo det funkar. Men problemet då blir att jag måste skapa klassen i varje funktion som använder den, eller hur. Samt att ja få felmeddelandet "Cannot redeclare class" eftersom jag jag använder denna användarhanteringsklassen på sidor som också använder felhanteringsklassen...hmm..men det smartaste är ju att skapa den som en var i klass1 så att den kan anropas från alla funktioner.