Variable aus Funktion auslesen

Schönen guten Abend,

folgendes Problem:
Ich habe 3 Funktionen; diese sind wie folgt aufgebaut:

Funktion1 {
}

Funktion2 {
Funktion3 {
}
}

Nun erzeugt Funktion1 eine Varibale, auf die ich in Funktion3 wieder zugreifen muss. Ich habe es bereis mit "return" versucht, jedoch funktioniert das nicht.

Der Code vereinfacht ausgedrückt sieht ungefähr so aus:

PHP:
function eins () {
$variable = "bla Keks";
return $variable;
}

function zwei() {
  drei();
}

function drei() {
  global $variable;
  echo $variable;
}

eins();


Es wäre nett, wenn mir jemand, trotz der späten Uhrzeit, weiterhelfen könnte. Danke.
 
Zuletzt bearbeitet:
Du kannst nicht direkt auf die Variable in der Funktion zugreifen, aber was spricht denn dagegen die Funktion aufzurufen und dann den Rueckgabewert zu nutzen?
 
dazu musst du die Variable Global anlegen
$variable = "blaaa";

function eins () {
global $variable;
$variable = "bla Keks";
}

function
zwei() {
drei();
}

function
drei() {
global
$variable;
echo
$variable;
}

eins();
 
Es geht auch ohne globale Variable:

PHP:
function eins () {
$variable = "bla Keks";
return $variable;
}

function zwei($variable) {
  drei();
}

function drei($variable) {
  echo $variable;
}

eins();
 
Die beiden Beispiele funktionieren leider nicht...
Kann sich jemand erklären, wieso bzw. hat jemand ne Idee, wie man es zum Funktionieren bekommt?

Bevor die Frage kommt:
PHP 5
Register globals: on
 
Hoffe das hilft weiter:

PHP:
<?php
function eins () {
    global $variable;
    echo $variable = "bla Keks <br>";
    return $variable;
}

function zwei($variable) {
    drei($variable);
}

function drei($variable) {
    echo $variable;
    return $variable;
}

eins();
zwei($variable);
drei($variable);
?>
 
Oder so

PHP:
function1()
{
  $variable = "Wert";
  return $variable;
}

function2($variable) {
  return $variable;
}

function3() {
   //mach was
}


function3(function2(function1));

oder so

PHP:
function1()
{
  $variable = "Wert";
  return $variable;
}

function2() {

}

function3() {
   //mach was
}


$tempVar = function1();
function2();
function3($tempVar);

In der dritten müsstest dann noch drauf zugreifen können, da sie da noch gültig sein sollte
 
Schade. Ich glaube, dass mir das nicht weiterhilft.

Das Problem ist das Funktion "drei" in Funktion "zwei" aufgerufen wird und die Variable in Funktion "eins" definiert wird.

Ziel ist es also: die Variable aus Funktion "eins" für Funktion "drei" verfügbar zu machen.

Hat jemand noch eine Idee?

Danke für eure Mühen.
 
O.k. Ich vermute fast, dass dein Problem ganz wo anders liegt. Deswegen empfehle ich dir einfach mal die Variable in einer Globalen zwischen zu speichern.

PHP:
function1()
{
  $variable_global = $variable
}

Und wenn es gar nicht anders geht, dann benutz du einfach eine Session. Damit kannst die auf jeden Fall später noch benutzen.
 
Könnte man erfahren was du vor hast?

Vielleicht lässt sich dein Anliegen auf eine viel bessere und elegantere Art lösen.

greetz
daddz
 
Zurück