php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
Alt 03.02.2012, 12:41  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von jspit Beitrag anzeigen
Ja, mit dem Konzept überdenken liegt man fast immer richtig. Aber Spaß beiseite.
Es müssen auch nicht anonyme Funktionen sein.
Im konkreten Fall brauche ich Callbackfunktionen für preg_replace_callback, die ich in verschiedenen Methoden
benötige. Ich habe diese erstmal als private declariert, funktioniert auch.
Da sind aber solche Konstrukte dabei, die mir aber nicht gefallen (Ist mir zuwieder, solche Krümel als Methode zu deklarieren):
PHP-Code:
private function callback1($m){
    return 
'=> "'.self::uniSearch($m[1]).'"';

Diese wollte ich durch eine anonyme function beim Aufruf von preg_replace_callback ersetzen.
Das klappt sogar, wenn ich uniSearch als public deklariere. Das möchte ich aber auch nicht,
da nur Methoden von "außen" aufrufbar sein sollen, die auch Sinn machen.
Meine Hoffnung war, daß es da noch ein Trick gibt self in den Function-Scope zu schmuggeln.
Methoden die nur dafür da sind Lambdas zu definieren und als return abzuladen -> sinnfrei => reale globale funktionen nutzen oder lambda's in die klasse bootstrappen

Methoden die nur dafür da sind um Lambda's zu laden, daraus ein Lambda zu erzeugen das ein Lambda unter bedingung xy ausführt -> sinnfrei => do it the OOP-Way..

Faildesign 2.0
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.02.2012, 14:17  
Erfahrener Benutzer
 
Benutzerbild von jspit
 
Registriert seit: 19.08.2011
Beiträge: 701
PHP-Kenntnisse:
Anfänger
jspit wird schon bald berühmt werden
Standard

Zitat:
Zitat von fab Beitrag anzeigen
Würdest du so etwas schöner finden?
Klingt etwas skeptisch. Aber genau so etwas hab ich gesucht! Danke fab.
Aus uniSearchCallback wird getMyFunction($NameOfFunction), liefert mir dann mit einer privaten Methode meine gewünschte function wo ich sie brauche.
Wenn ich meine Hilfsfunction noch in die getMyfunction verfrachte, sollte ich mein preg_replace_callback dann so aufrufen können:
PHP-Code:
preg_replace_callback(..., self::getMyFunction('cb1')); 
Dann sieht es doch auch schön aus, oder ?

@tr0y: Dank auch dir, brauch immer etwas Zeit deine Anmerkungen zu verdauen.
jspit ist offline   Mit Zitat antworten
Alt 03.02.2012, 14:24  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von jspit Beitrag anzeigen
Aus uniSearchCallback wird getMyFunction($NameOfFunction), liefert mir dann mit einer privaten Methode meine gewünschte function wo ich sie brauche.
Wenn ich meine Hilfsfunction noch in die getMyfunction verfrachte, sollte ich mein preg_replace_callback dann so aufrufen können:
PHP-Code:
preg_replace_callback(..., self::getMyFunction('cb1')); 
Dann sieht es doch auch schön aus, oder ?

@tr0y: Dank auch dir, brauch immer etwas Zeit deine Anmerkungen zu verdauen.
Wozu ? ..

PHP-Code:
class foo {
   protected static 
$_callback null;

   public static function 
bar() {
      
/* ... $boing = ... */
      
preg_replace_callback($boing, static::$_callback);
   }

   public static function 
setCallbackClosure $c ) {
      static::
$_callback is_null(static::$_callback) ? $c : static::$_callback;
   }


bootstrapped
PHP-Code:
foo::setCallback( function() { /* ... */ return 'börps'; } ); 
win.. andernfalls: god-class implements iFail ?
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Unittests mit private Methoden coola PHP Einsteiger 8 31.01.2011 15:02
[Erledigt] statische klassen immer sinnvoll ? Codercrush PHP-Fortgeschrittene 14 17.09.2010 16:44
[Erledigt] Vererbung - Zugriff auf Elternmethoden nicht möglich unimow PHP Tipps 2008 5 03.11.2008 18:53
public, protected, private Funktionen ecomeback PHP Tipps 2007 10 21.08.2007 02:21
Klassen und externe Funktionen ? ssm PHP-Fortgeschrittene 17 18.07.2007 11:59
Zugriff auf statische methoden oder konstanten nightfreak PHP-Fortgeschrittene 6 14.11.2005 16:56
Code Syntax Highlighting imported_Lumio PHP-Fortgeschrittene 9 16.08.2005 11:06
klassen und methoden anderer klassen in methoden.... PHP Tipps 2005 17 25.05.2005 09:46


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:50 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum