Hallo
Ik zit nu met een vraag met hoe jullie het volgende zouden oplossen...
Dit is een voorbeeldje:

Voorbeeld scriptje:
<?php
class test
{

function test()
{
require_once("config.php");
echo "In test::test() werkt hij!: $testvariable";
$test2 = new test2();
}
}

class test2
{

function test2()
{
echo "<br>In test2::test2() werkt hij niet!: $testvariable";
}
}

$test = new test();
?>

Je krijgt dan de error:
Notice: Undefined variable: testvariable in H:\test.php on line 20

Ik kan dit oplossen door het volgende tedoen, maar kan het niet anders?:
1. $_GLOBAL["testvariable"] gebruiken
2. Globaal voor de variable zetten en dan de variable setten.
3. Doorgeven met een functie binnen de class. Bv getconfig(en dan alle de vars);

Dit lijkt mij allemaal niet echt goed. Is er geen andere manier om de vars door tegeven?
Grtz DDragonz
Variabelen doorgeven gaat via de parameter list.
voorbeeld:

<?php

class Foo{

    public function bar($param){
        return 'Parameter: '.$param;
    }

}

$oFoo = new Foo();
echo $oFoo->bar();

?>
Huh? dit is toch gewoon een return? Anders kan je mijn voorbeeld werkend maken?
Het gaat niet om de return, het gaat om dit: function bar($param)

Verder is je voorbeeld niet heel duidelijk, bovendien doe je een require binnen een methode in je class, dat is ook niet helemaal de bedoeling, dat zou dan altijd nog voor de class defenitie moeten.
Maar soms moet toch wel iets include in een class. Dat is toch geen probleem?
Maar vertel eens over die bar($param), want ik ken er niks over vinden?
Stel je wil 2 cijfers optellen met een functie (voor klassen heet dat methode). Je maakt dus een functie met 2 parameters:

<?php
function optellen( $cijfer1, $cijfer2 )
{
return $cijfer1 + $cijfer2;
}

echo optellen(1,2); // geeft: 3
?>

Simpel toch...
Vertel mij eens waarom je iets zou moeten includen in een class?

Stel je hebt een config file met daarin een wachtwoord wat je in een class nodig hebt doe het het volgende:


<?php

class Foo{
    
    public function loadConfig($user, pass){
        // Doe wat ever je wil met $user en $pass;
    }
    
}

require_once 'configfile.php';

$oFoo = new Foo();
$oFoo->loadConfig($conf['user'], $conf['pass']); // Nu heb je het wachtwoord uit de config file tot je beschikking.
    
?>
hmm sorry, maar dat wist ik allang. Maar het hoeft niet meer. Ik heb er al wat op verzonnen zelf. Ik heb het blijkbaar slecht uitgelegd :|

Reageren