susi: include mit rückgabe wert ?

hallo,

hab folgenden code:

<?php
$output= "hallo";
return include_once($file);
?>

nun will ich in dem $file enthaltenen file auf $output zugreifen!
und das ergebnis ausgeben!

<?php
global $output;
$return= $output."text";
return $return;
?>

nur kann ich auch mit global nicht auf $output zugreifen ...
warum?

BITTE: nicht die sionnhaftigkeit nachfragen, weil die gibts es auf jeden fall ... ;-)

THX susi

  1. Hi susi!

    nur kann ich auch mit global nicht auf $output zugreifen ...
    warum?

    Weil diese Variable nicht bekannt ist.

    Du benutzt die Dateien so, als wären sie Funktionen. AFAIK hat include_once() keinen Rückgabewert...

    MfG Hopsel

    --
    "It's amazing I won. I was running against peace, prosperity, and incumbency."
    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    1. Hi susi!

      nur kann ich auch mit global nicht auf $output zugreifen ...
      warum?

      Weil diese Variable nicht bekannt ist.

      was heisst weil diese variable nicht bekannt ist?
      sie ist nachdem ich sie mit return werten in einem include verwendet nicht im scope mach ich sie ja global!
      also müsste sie auftauchen!

      Du benutzt die Dateien so, als wären sie Funktionen. AFAIK hat include_once() keinen Rückgabewert...

      leider muss ich dich hier berichtigen include datein können wie funktionen benutzt werden wenn ich ein return einfüge, was ich auch tat!

      1. Hi!

        sie ist nachdem ich sie mit return werten in einem include verwendet nicht im scope mach ich sie ja global!

        Wow, was für ein Satz...
        Wo ist hier das Problem? Groß- und Kleinschreibung? Verwendung von Punkt und Komma? Fehlende Wörter? Ich bin nicht sicher...
        In jedem Fall:
        ich nix dir verstehen vielleicht du besser deutsch!

        ;o)

        Gruß, rob

        1. extrem lustig ...

          also ...

          ich hol eine vbariable in ein inlcude welches eibnen rückgabe wert hat mit global in jenen scope! klar?

          aber in meinem beispiel funkt dies nicht, warum?

          1. Hello,

            extrem lustig ...
            aber in meinem beispiel funkt dies nicht, warum?

            Was wollest Du denn nun eigentlich wissen?
            Welche Degug-Strategien hast Dunschon selber durchgeführt?
            Wie sind Deine Fehlermeldungen?
            Welche Debug-Einstellungen hast Du gewählt?

            Harzliche Grüße vom Berg
            esst mehr http://www.harte-harzer.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. wie bereits im threat geschrieben bekomm ich die variable nicht in den scope der include datei auch wenn ich sie global mache!
              was sollte ich hierbei noch groß debuggen?
              vor der include funktion ist sie sichtbar, innen nicht!

              lg, susi

              1. Hello,

                wie bereits im threat geschrieben bekomm ich die variable nicht in den scope der include datei auch wenn ich sie global mache!
                was sollte ich hierbei noch groß debuggen?
                vor der include funktion ist sie sichtbar, innen nicht!

                Sollen wir das jetzt für Dich debuggen, ohne dass wir den realen Code kennen?
                Das fände ich doch etwas viel verlangt.

                Harzliche Grüße vom Berg
                esst mehr http://www.harte-harzer.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
              2. Hallo susi,

                wie bereits im threat geschrieben bekomm ich die variable nicht in den scope der include datei auch wenn ich sie global mache!
                was sollte ich hierbei noch groß debuggen?
                vor der include funktion ist sie sichtbar, innen nicht!

                Hast du mein Posting gelesen?

                Schöne Grüße,

                Johannes

                --
                ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)
    2. Hallo Hopsel,

      Du benutzt die Dateien so, als wären sie Funktionen. AFAIK hat include_once() keinen Rückgabewert...

      Unter bestimmten Umständen doch. Lies dir dazu http://www.php.net/manual/en/function.include.php durch, insbesondere den Abschnitt, der mit »Handling Returns:« beginnt. Dass sich include_once() genauso verhält, wird durch die entsprechende Seite des Handbuchs bestätigt.

      Schöne Grüße,

      Johannes

      --
      ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)
  2. Hello,

    <?php
    global $output;
    $return= $output."text";
    return $return;
    ?>

    Wenn die Variable im Script, in dem das File eingebunden wird, in derselben Ebene liegt, wie im File, dann benötigst Du auch kein global. Wenn allerdings die Variabel in dem File innerhalb einer Funktion benutzt wird, oder aber im Hüllscript in einer Funktion definiert wird, dann muss sie auch mit global behandelt wrden.

    Warum benutzt Du nicht

    $filecont = file_get_contents($filename);

    Müssen in dem File noch Dinge ersetzt werden?

    Harzliche Grüße vom Berg
    esst mehr http://www.harte-harzer.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  3. Hallo susi,

    <?php
    global $output;
    $return= $output."text";
    return $return;
    ?>

    nur kann ich auch mit global nicht auf $output zugreifen ...
    warum?

    Doch, in der Hinsicht funktioniert dein Beispiel. Du kannst sogar auf die Anweisung global $output verzichten, denn:

    »When a file is included, the code it contains inherits the variable scope of the line on which the include occurs. Any variables available at that line in the calling file will be available within the called file, from that point forward.« (http://www.php.net/manual/en/function.include.php)

    Dein Fehler liegt woanders:

    <?php
    $output= "hallo";
    return include_once($file);
    ?>

    nun will ich in dem $file enthaltenen file auf $output zugreifen!
    und das ergebnis ausgeben!

    Du willst das Ergebnis ausgeben, das geht jedoch nicht mit return. return beendet lediglich das laufende Script, gibt jedoch keine Daten aus. Dein Code müsste also so aussehen:

      
    <?php  
        $output = "hallo";  
        echo include_once($file);  
        return;  
    ?>  
    
    

    Schöne Grüße,

    Johannes

    --
    ie:% fl:( br:< va:) ls:[ fo:) rl:) n4:& ss:| de:] js:| ch:} sh:) mo:} zu:)