Auf Variable einer Klasse zugreifen

Metha

Mitglied
Moin Moin,

ich habe folgendes Problem. Ich möchte auf eine Variable in einer Klasse zugreifen.

Folgendes Beisspiel:

PHP:
<?php
class klasse
{
	function berechnen()
	{
	$var1=1;
	$var2=2;
	$var3=$var1+$var2;

	echo $var3;
	}
}

Aufrufen würde ich die Klasse dann ja mit:
PHP:
	include('klasse.php');
	$berechnen=new klasse();
	$berechnen->berechnen();

Das würde mir ja die Berechnung der Funktion"berechnen()" ausgeben.
Nun möchte aber nicht die Funktion ausgeben, sondern nur auf den Wert der $var3 zugreifen.

Meine Klasse ist natürlich um einiges komplexer, aber vom Prinzip ist es gleich.
Ich meine es müsste so ähnlich wie: $berechnen->var3; funktioniert...

Kann mir da jemand weiterhelfen ?

Gruß Micha
 
PHP:
<?php
# Die Klasse
class klasse
{
    function berechnen()
    {
    $var1=1;
    $var2=2;
    $var3=$var1+$var2;

    return $var3;
    }
}

# Der Aufruf:

$class = new klasse;
$test = $class->berechnen;

# $test hat nun den Inhalt von $var3
?>
 
Probiers mal so:
PHP:
<?php 
class klasse 
{ 
    var $var3 //Bei PHP4, sonst public $var3;
    function berechnen() 
    { 
    $var1=1; 
    $var2=2; 
    $this->var3=$var1+$var2; 
    } 
}
und dann:
PHP:
$klasse = new klasse;
echo $klasse->var3;
 
In Funktionen definierte Variablen sind auch nur innerhalb der Funktion gültig. Somit ist es mit der derzeitigen Struktur nicht möglich auf die Variablen innerhalb der Funktion zuzugreifen.
Sie könnte jedoch in zwei Weisen geändert werden: Entweder definierst du die Variablen als Attribute der Klasse oder die Funktion gibt ganz einfach den Wert nicht direkt aus sondern nur zurück.
 
Danek für die schnellen Antworten. Ok, habe nur diese beiden Varianten probiert und keine geht. Ich steh wohl ziemlich auf dem Schlauch

PHP:
<?php 
class klasse 
{ 
    var $var3;
    function berechnen() 
    { 
    $var1=1; 
    $var2=2; 
    $this->var3=$var1+$var2; 
    } 
} 

// Ausgabe
    $berechnen=new klasse(); 
    $berechnen->var3;

// Ergibt keine Ausgabe

PHP:
<?php 
class klasse 
{ 
    function berechnen() 
    { 
    $var1=1; 
    $var2=2; 
    $var3=$var1+$var2;
    return;
    } 
} 

// Ausgabe
    $berechnen=new klasse(); 
    echo $berechnen->berechnen();

// Ergibt auch keine Ausgabe

Jemand ne Ahnung wo ich auf dem Schlauch stehe?
 
PHP:
<?php 
class klasse 
{ 
    function berechnen() 
    { 
    $var1=1; 
    $var2=2; 
    $var3=$var1+$var2;
    return $var3;
    } 
} 

// Ausgabe
    $berechnen=new klasse(); 
    echo $berechnen->berechnen(); # Direkte Ausgabe
    $test = $berechnen->berechnen(); # Zuweisung zu $test
?>
Oder
PHP:
<?php 
class klasse 
{ 
    var $var3;
    function berechnen() 
    { 
    $var1=1; 
    $var2=2; 
    $this->var3=$var1+$var2; 
    return $this->var3;
    } 
} 

// Ausgabe
    $berechnen = new klasse;
 
    $berechnen->berechnen();

    echo $berechnen->var3;
?>
 
Zurück