Martin Hein: Ausgabe umleiten

Hallo Forum,

wir haben ein Framwork gebaut, dass folgendermassen aufgebaut
ist. Ein Beispiel zur Verdeutlichung:

index.php|
-------------------------
<?   |
include "test.inc.php"; |
?>   |
   |
<html>   |
 <body>   |
<?=$text;?>  |
 </body>  |
</html>   |
-------------------------

test.inc.php|
-------------------------
<?   |
$text = "hello world"; |
?>   |
-------------------------

In Worten: In includierten files werden lediglich Variablen
belegt, die an anderer Stelle ausgewertet werden.

Jetzt includiere ich eine komplexe Applikation eines Fremd-
anbieters. Die ist objektorientiert aufgebaut und ensprechend
werden in dem file methoden() aufgerufen, die eine direkte
Ausgabe zur Folge haben.(z.b. "IGS->display();") Ich hatte
mir vorgestellt, dass ich den Rückgabewert der Methode einer
Variablen zuweise ("$ausgabe = IGS->display();") und diesen
Wert an einer beliebigen Stelle ausgeben kann. ich habe mich
leider getäuscht.

"$ausgabe = IGS->display()" führt genauso zu einer dirketen
Ausgabe, wie "IGS->display();" Ich habe leider keinen Zugriff
auf alles und kann deshlab nicht selbst nachsehen, was genau
die Methode "display()" macht.

Hat jemand eine Idee, wie ich zu meinem Ergebnis kommen
kann und den Rückgabewert einer Variablen zuweise?

danke für Tipps und

beste gruesse,
martin

  1. echo $begrüßung;

    Hat jemand eine Idee, wie ich zu meinem Ergebnis kommen kann und den Rückgabewert einer Variablen zuweise?

    Wenn es keine Methode gibt, die das Ergebnis zurückliefert, kannst du die Output Control Functions nutzen.

    echo "$verabschiedung $name";

  2. Hi Martin,

    sofern das noch php4 ist, greifen keinerlei private / public Angaben in Klassen.
    D.h. die Eigenschaften wären "schutzlos" und abrufbar.

    Du könntest z.B. mit print_r(get_object_vars(Objekt)) die Eigenschaften
    samt Inhalt auflisten lassen und anschließend direkt auf die für Dich
    interessanten Inhalte zugreifen, statt die Methode display() zu nutzen,
    die ja augenscheinlich keinen Rückgabewert hat, sondern alles direkt ausgibt.

    Schönen Gruß,

    Michael

    1. echo $begrüßung;

      sofern das noch php4 ist, greifen keinerlei private / public Angaben in Klassen.

      Nicht nur, dass sie da nicht greifen, ihre Notation wäre ein Syntax-Fehler.

      D.h. die Eigenschaften wären "schutzlos" und abrufbar.

      Die Zugriffsmodifizierer dienen in erster Linie dazu, die Intention des Programmierers bezüglich des Aufbaus der Klasse zu verdeutlichen. Welche Funktionen/Eigenschaften dienen internen Zwecken, welche sind für den Zugriff von außen vorgesehen. Ein Schutz ist bei quelloffenen Scripten sowieso nicht zu gewährleisten. Der Anwender kann sich ja die Modifizierer einfach umschreiben. Sein Schutz- und Sicherheitskonzept sollte man daher nicht von den Zugriffsmodifizierern abhängig gestalten.

      echo "$verabschiedung $name";

  3. Hi,

    danke für die Tipps ... die ich an dieser Stelle
    nicht mehr ausprobieren muss. Das Problem hat sich
    verschoben.

    viele gruesse,
    martin hein