• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Auf Variablen innerhalb einer Funktion zugreifen?

Extremefall

Mitglied
Hallo,
ich habe folgende Struktur:
PHP:
class a{
public static function setzeWert(){
global $id;
$id = 5;
}
}
class b{
public static function verarbeiteWert(){
$id+=2;
echo $id;
}
}
Wie kann ich nun auf die innerhalb der Funktion deklarierte Variable über eine andere Funktion zugreifen? Ist es überhaupt möglich und wie mache ich es dann am besten?

Vielen Dank schonmal für eure Bemühungen.
 
Werbung:
Hier ein objektorientierter Ansatz:
PHP:
<?php
class a{
    private $_id;
    public function setzeWert(){
        $this->_id = 5;
    }
    public function getWert() {
        return $this->_id;
    }
}

class b{
    public static function verarbeiteWert($wertVonA){
        return $wertVonA + 2;
    }
}  

$objektVonA= new a();
$objektVonA->setzeWert();
$objektVonB = new b();
echo $objektVonB->verarbeiteWert($objektVonA->getWert());
?>
 
Oder mit Vererbung
PHP:
<?php
class BlaBla
{
    protected $_id = 0;
    
    public __construct($idWert)
    {
        $this->_id = $idWert;
    }
}

// --- Methoden und Attribute der BlaBla Klasse vererben mittels extends
class Zugreifen extends BlaBla
{
    public function __construct($zahlWert)
    {
        $this->_id += $zahlWert;
        return $this->_id;
    }
}


$blablablaObject = new BlaBla(5); // --- neues Objekt instanzieren und Parameter für die Eingeschaft _id übergeben
$zugreifenObject = new Zugreifen(10); // --- auf die Egenschaft id der Elternklasse zugreifen und um 10 erhöhen
echo $zugreifenObject; // --- Ausgabe: 15
?>
 
Werbung:
Ich habe nun allerdings noch einen kleinen Fehler in meinem Code. Ich erhalte den Fehler: Fatal error: Using $this when not in object context in ....
Mein Code:
PHP:
class abfrage {
private $_id;
public static function verarbeiteId(){
$abfrageobj = new abfrage();
$id = $abfrageobj->getId();
echo "Id: $id";
}
public static function setId(){
// Abfrage, ID wird in $id gespeichert
while($row = mysql_fetch_object($ergebnis))
   {
   $id = $row->id;
   $this->_id = $id;
}
}
public function getId() {
        return $this->_id;
    }
}

Wisst ihr, wo dort der Fehler liegen könnte? MfG
 
Zurück
Oben