Hallo,

Ik heb een variabele die buiten de classe een waarde heeft.

In de class heb ik een functie (die ik aanroep). In de functie is de variabele leeg. Ook al maak ik hem global.
Weet iemand wat ik fout doe?

Voorbeeld:


<?PHP
var_dump($test); // $test heeft hier een waarde

class KlasseNaam extends AndereKlassenaam
{
  public function test($andereVariable)
  {
    global $test;
    return $test; // $test is leeg
  }
}
}
?>
Classen en functie moeten altijd op zichzelf staan en nooit afhankelijk zijn van de context waarin ze staan. Je moet dus nooit globals gebruiken.

Je kan via argumenten in fucntie ($andereVariable) in jouw voorbeeld en class properties de waardes van buiten naar binnen de class brengen:
<?php

class Registry
{
private $value;

public function __construct($value)
{
$this->value = $value;
}

public function get()
{
return $this->value;
}
}

$test = 'whoa!';
$registry = new Registry($test);
echo $registry->get(); // 'whoa'
?>

Reageren