phpbar.de logo

Mailinglisten-Archive

[php] Return-Werte aus Funktionen

[php] Return-Werte aus Funktionen

Olaf Gleba list at creatics.de
So Feb 5 19:57:44 CET 2012


Moin zusammen,

vielleicht mag mir jemand meine Wissenslücke füllen, bzw. dabei helfen, folgendes zu verstehen.

Ganz grob geht es um die Art und Weise, wie statische Funktionen referenziert werden (können). Schwer zu erklären mangels richtiger Begrifflichkeit bei mir. Also versuche ich es anhand eines Beispiels deutlich zu machen.

Was in u.g. Beispiel(en) gemacht wird (grob): In einer PHP Datei werden Formulare mit QuickForm2 erstellt, die innerhalb von Smarty Templates gerendert werden.

Beispiel 1: Hier erfolgt die Initialisierung der QuickForm factory Klassen innerhalb der PHP-Datei, in dem auch das Formular gebaut und ausgegeben wird. Das Beispiel FUNKTIONIERT.

<?php  
  // PHP Ausgabe, Datei
  ...
  require_once 'HTML/QuickForm2/Renderer.php'; 
  HTML_QuickForm2_Renderer::register('smarty', 'HTML_QuickForm2_Renderer_Smarty');
  $renderer = HTML_QuickForm2_Renderer::factory('smarty');

  .. einige Dinge mit $renderer anstellen ...
?>

Beispiel 2: Hier erfolgt die Initialisierung der QuickForm factory Klassen innerhalb einer Klassenfunktion (loadQuickFormSmartyRenderer()) einer separaten Klassen-Datei, die ich in der PHP-Datei nutze. Gleichzeitig soll hier die Instanz-Rückgabe in der Variable $renderer zur Weiterverwendung gespeichert werden. Das Beispiel FUNKTIONIERT NICHT.

<?php  
  // PHP Ausgabe, Datei
  ...
  $renderer = $klassenobjekt->loadQuickFormSmartyRenderer();

  .. einige Dinge mit $renderer anstellen ...
?>

<?php
  // Klassenfunktionen 
  public function loadQuickFormSmartyRenderer() 
  {
	
    // Load the QuickForm2 Renderer
    require_once('HTML/QuickForm/Renderer.php');
	
    HTML_QuickForm2_Renderer::register('smarty', 'HTML_QuickForm2_Renderer_Smarty');
    HTML_QuickForm2_Renderer::factory('smarty');

    // hier müsste ich ja was retournieren(?) Aber was genau?
    // "return HTML_QuickForm2_Renderer::factory('smarty');" etc. geht ja nicht
  }
?>

Ich hoffe, die Beschreibungen und Beispiele sind einigermaßen hilfreich. Mir ist also nicht wirklich klar, wie man statische Klassenaufrufe retourniert. Bzw. ob das so, wie oben grob angedacht ist, überhaupt geht? 
Grund des Ganzen ist übrigens einfach die Vermeidung von Redundanzen. So dass ich nicht in jeder PHP-Datei die den QuickForm Renderer neu initialisieren muss.

Vielleicht mag mir jemand hier ein paar Worte zu schreiben?

Danke schon jetzt.

gruss
Olaf



-- 
creatics : Inh. Olaf Gleba
Tel. +49 (0)221 170 67 224 : Fax. +49 (0)221 170 67 225
og at creatics.de : http://creatics.de
PGP-Key http://creatics.de/keys/





php::bar PHP Wiki   -   Listenarchive