php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 22.04.2009, 16:31  
Erfahrener Benutzer
 
Registriert seit: 24.03.2009
Beiträge: 124
PHP-Kenntnisse:
Fortgeschritten
DarkPrisma befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Der Sinn und Zweck von Anonymen Funktionen?

Hallo,

ab dem neuen php5.3 gibt es ja nun die möglichkeit, wie in C# und Javascript, etc. anonyme functionen zu erstellen. ich lese momentan sehr oft das, dass so klasse sein soll, aber bisher habe ich kein vernünftiges beispiel gesehen. mir fehlt irgendwie noch so der sinn in dem ganzen, ich wüsste nicht, wo man sowas verwenden kann. kann mir da jemand helfen?

Dark
DarkPrisma ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 22.04.2009, 16:35  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Willst Du jetzt irgendein einfaches Beispiel?
David ist offline   Mit Zitat antworten
Alt 22.04.2009, 16:57  
Erfahrener Benutzer
 
Registriert seit: 24.03.2009
Beiträge: 124
PHP-Kenntnisse:
Fortgeschritten
DarkPrisma befindet sich auf einem aufstrebenden Ast
Standard

hier auf der seite z.B.
Lambda Funktionen in PHP 5.3 | Guido Mühlwitz

irgendwie will mir nicht in den kopf was es für einen sinnmacht, eine methode zu definieren und dann der eine anonyme funktion zu übergeben.
DarkPrisma ist offline   Mit Zitat antworten
Alt 22.04.2009, 17:19  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Zum Beispiel wenn Du einen größeren, immer wiederkehrenden Codeabschnitt hast, den Du an einem bestimmten Punkt beeinflussen willst, kannst Du das einfach mit anonymen Funktionen machen.
Das geht auch jetzt schon bis zu einem gewissen Punkt, da Du Funktionen über den Namen aufrufen und diesen Namen als String übergeben kannst.
PHP-Code:
function foo($a$b) {
  return 
strcmp($a->propX$b->propY);
}
usort(ArrObjects'foo'); 
Quick/Bubble/WahteverSort funktionieren immer gleich. Alles was sie brauchen, ist eine Funktion, die die Objekte in Relation zueinander setzt (a>b, a<b, a=b).
Der Nachteil bisher ist, dass die Funktion dauerhaft vorhanden ist. Einmal definiert, existiert die Funktion (mit diesem namen) bis zum Ende der PHP Instanz, auch bei create_function().

Demgegenüber hast Du bei anonymen Funktionen
PHP-Code:
usort(ArrObjects, function ($a$b) {
  return 
strcmp($a->propX$b->propY);
}); 
dieses Namens/Scopeproblem nicht.
David ist offline   Mit Zitat antworten
Alt 22.04.2009, 17:20  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

In JavaScript brauchte ich anonyme Methoden ständig und bin nun froh, dass es das nun endlich auch in PHP gibt, create_function() hat mich immer sehr abgeschreckt.
Die brauchst du für Callbacks allgemein, um bestimmte Funktionalität als Parameter zu übergeben, sei es nun für preg_replace_callback() oder wie dort ein benutzerdefiniertes Sotierkriterium. Du brauchst sie immer dann, wenn du Funktionalität übergibst, die du vorher nicht kennen kannst, z.B. Funktionalität, die nach einer bestimmten Aktion ausgeführt werden soll. In JavaScript sind das ganz klar Event-Handler und Ajax-Requests. In PHP gibt es zwar keine Ajax-Requests und Event-Handler auch nicht (lässt sich aber durch ein EventDispatcher-Pattern in etwa nachrüsten), aber doch auch einige Anwendungen, in denen man eine Ergebnisverarbeitung braucht, wie eben bei preg_replace_callback() oder wenn du in einem Algorithmus an einer bestimmten Stelle Code injizieren willst.

Beitrag editiert:
[…] Zu langsam...
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 22.04.2009, 17:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich verwende sie (die alte Variante) zur Performanceoptimierung hier: Tutorial:'Templating' auf Basis von sprintf - PHP.de Wiki
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.04.2009, 17:58  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

eine klasse mit interfaces find ich trotzdem besser....

und ja es ist mir bekannt es ist mehr zu schreiben, na und?
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*
brian johnson ist offline   Mit Zitat antworten
Alt 22.04.2009, 18:08  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

In meinem Beispiel bräuchte das dann aber schon ein Objekt, dazu noch eine Methode mit variablen Parametern, ... das ist imho kein adäquater Ersatz.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 22.04.2009, 18:27  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Das vom TE verlinkte Beispiel halte ich jetzt auch nicht für so schlüssig, da er die Bücher ja durchaus auch in Klassen verpacken könnte, die ihre eigenen Sortieralgorithmen kapseln, aber um Aktionen für die Ergebnisverarbeitung fester Mengen wie Arrays oder reguläre Ausdrücke sind sie sehr sinnvoll einzusetzen.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 22.04.2009, 18:33  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ach so, darauf bezog sich das
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch 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
PHP Default charset für Funktionen MasterQ PHP-Fortgeschrittene 6 06.01.2011 10:03
Funktionen und Variablen greenslot PHP Tipps 2009 1 23.03.2009 20:59
[Erledigt] wie kann man funktionen "sichtbar" machen? spikytux PHP Tipps 2009 5 04.03.2009 05:36
Templatesystem mit Funktionen und Variablen drin? BartTheDevil89 PHP Tipps 2008 6 01.07.2008 09:32
welche funktionen deaktivieren brian johnson PHP-Fortgeschrittene 4 15.11.2007 09:25
Klassen und externe Funktionen ? ssm PHP-Fortgeschrittene 17 18.07.2007 11:59
eine Variable für alle Funktionen definieren Wing PHP Tipps 2007 16 24.06.2007 21:02
komische arrays werden in funktionen nicht angenommen! mollitz PHP Tipps 2007 8 08.03.2007 18:50
Funktionen überprüfen und Grafik Funktionen hans.karl2 PHP Tipps 2006 10 31.07.2006 20:08
Der Sinn von OOP bei php Melchior PHP-Fortgeschrittene 2 16.07.2006 23:50
Funktionen in Funktionen - ist das gut? Schneckenkind PHP Tipps 2006 23 10.06.2006 13:39
funktionen trinity PHP Tipps 2006 4 27.05.2006 13:21
Globale Variabeln in Funktionen finerip PHP Tipps 2007 3 28.11.2005 16:00
Eure Ideen sind gefragt: eigene Funktionen verwalten PHP-Fortgeschrittene 12 17.01.2005 15:00
Funktionen Erklärung TheSkaterFriend PHP Tipps 2004 14 11.06.2004 22:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php anonyme funktionen, php anonyme funktion, anonyme funktionen php, anonyme funktion php, javascript anonyme funktion, php 5.3 anonyme funktionen, php anonyme function, php anonyme klasse, javascript anonyme funktionen, anonyme funktion javascript, anonyme funktionen in php, php anonyme methoden, php anonyme functionen, anonyme methoden php, php 5 anonyme funktionen, anonyme funktionen sinn, php annonyme funktionen, php zweck, javascript sinn von anonymen funktionen, php funktionen sinn

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:42 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