php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.03.2007, 18:15  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Ja, da hast du recht, funktioniert doch auch. Wenn man weiß wie es geht und
die nötige Erfahrung hat, dann ist das alles relativ einfach. Aber wenn man drei
Stunden vor so einem Kleinkram rumsitzt, dann ist das schon ziemlich anstrengend.
tinchen ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.03.2007, 19:44  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von tinchen
Zitat:
Und je nach Aufrufparametern Deiner Funktion hast Du noch nichtmal ein Array übergeben.
Na ja, da es mir zunächst nicht aufgefallen ist, wirst du dir denken könne, dass der
Fall gar nicht aufgetreten ist.
Da Du ja nicht gesagt hast, was nicht klappt, konnte ich mir das nicht denken. Zumindest nicht sofort.

Zitat:
Zitat von tinchen
Demnach ist
array_walk($fruit, 'trim_value');
var_dump($fruit);

etwas anderes als
$temp = array_walk($fruit, 'trim_value');
var_dump($temp);

Sorry, aber so klar ist das auf dem ersten Blick gar nicht.
Da ich mit diesen Callbacks auf Funktionen noch nie was am Hut gehabt habe,
muss einem das doch mal gesagt werden.
Mit einer Callback-Routine hat das absolut gar nichts zu tun.
Aber mit Funktionen. Mit deren Rückgabewerten und mit Referenzparametern.

Und Da Du die Doku ja angesehen hast, musst Du auch mal angucken, wie die Funktionsbeschreibung aussieht. Zumindest solltest Du das unbedingt tun. Da kannst Du auch komplett ohne Kenntnis über die Funktion schon sehen, dass Dein Ansatz rein formal nie funktionieren kann.

Die Callback-Routine ist nur eine klitzekleine Abwandlung der ganzen Sache.

Zitat:
Zitat von tinchen
Ob du das so sagen musst, wie es bei mir
angekommen ist, ist ja wiederum eine ganz andere Sache.
Ich bilde mir ein, dass ich nicht beleidigend wurde. Ich habe lediglich mit dem Finger auf Tatsachen gezeigt. Möglicherweise etwas unverblümt.
Insofern kann ich nicht beurteilen, wie das bei dir ankam.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 18.03.2007, 23:03  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Nun, du hast nicht unrecht, aber trotzdem würde ich sagen, dass die meisten
array_??? Funktionen das oder ein Array zurückgeben und eher selten etwas
anderes zurückgeben. Hier ist es allerdings sehr sinnvoll einen bool Wert
zurückzugeben. Nur muss man da erst einmal drauf kommen, wenn man das
so sieht. Ich wollte ja erst einmal vom foreach weg, damit hätte ich das Array
ja auch unschön cleanen können, um es hinterher wieder zusammenzusetzen.
Unschöner Code eben. Andere Geschichte.

Die wenigsten werden wohl wissen, was genau passiert, wenn man diese Funktionen
ausführt. Und sicher hilft die Funktionsreferenz um zu sehen was nicht richtig ist.
Nur muss man da erst einmal drauf kommen. Ich habe niemanden, der mir mal über
die Schulter schau und sagt, mach das mal so... Als reine Autodidaktin mit gerade
mal einjähriger PHP Erfahrung ohne jemals vorher programmiert zu haben, nicht
mal basic etc., darf man auch wohl mal solche Fragen stellen. Wenn man nun nach
drei Stunden keine Lösung gefunden hat, ist das schon recht deprimierend, wenn man
erfährt, dass array_walk eben kein array zurückgibt, wie gedacht.

Da ist das schon manchmal ganz schon nervenaufreibend, wenn ihr dann so tut, als
wäre das alles ganz einfach und man selbst ganz schön blöde. Irgendwann habt du/ihr
doch auch mal angefangen und ich glaube kaum, dass eure ersten Versuche so
genial waren, wie das der ein oder andere hier manchmal darstellt. D.h. ich lass
mich gerne belehren und muss auch eingestehen, dass ich das bool in der Funktions-
referenz einfach überlesen habe, aber ein wenig mehr Verständnis für Anfänger ist
vielleicht manchmal nicht schlecht.

Ich wünsche mir keine Lösungen auf dem Silbertablett und ärgere mich selbst genug,
dass ich ein Fehler nach dem nächsten mache und ich eine Woche an Dinge sitze,
für die andere vier Stunden brauchen, aber ein wenig mehr Verständnis dafür,
dass man auch Fehler macht, wäre vielleicht nicht schlecht.

Versteht mich nicht falsch, hier gibt es sehr viele, die sehr angenehm und wirklich
kompetent helfen können und dieses auch tun, aber nicht immer sitzt da jemand
am anderen "Ende", der nicht will, sondern einfach mal Fehler macht und dann mal
einen Tipp braucht. Und so, so vermute ich - geht es auch noch dem ein oder anderem
Profi. So ist eine Erklärung dann auch manchmal mehr Wert als eine Äußerung, die
weitgehend unterstreicht, wie blöde man mal wieder war.
tinchen ist offline  
Alt 18.03.2007, 23:44  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Es ist sicher nicht meine Absicht, zu zeigen wie blöd jemand ist.
Manchmal ist aber der Lerneffekt größer, wenn man den Fehler groß und deutlich aufgezeigt kriegt.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 19.03.2007, 02:36  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
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 misch mich auch nochmal kurz ein.
wie schon weiter oben angemerkt, gibts auch für deine erwartung eine funktion: array_map () liefert wie üblich ein array zurück, bei ähnlicher funktion wie array_walk ().
der vorteil der letzteren funktion dürfte die performance sein, weil funktionen mit parameterrückgabe (für Der_Gerhard: mit wertrückgabe außer bool) i.a. eine kopie des bearbeiteten wertes zurückgeben. liegt in der natur der sache.

ansonsten kann ich dir nur raten: als windows nutzerin lad dir einfach das php handbuch als .chm runter und leg es dir ins startmenü. über den index bist du eins zwei fix bei allen funktionsbeschreibungen und hast die beste übersicht über funktionsparameter, rückgabewerte u. die beispiele. ich schätze die meisten hier sind irgendwo autodidakten. aber die alte weisheit: 'wissen ist wissen wo's steht' stimmt auch hier.
nikosch ist gerade online  
Alt 19.03.2007, 09:23  
Erfahrener Benutzer
 
Registriert seit: 13.08.2007
Beiträge: 1.976
KingCrunch befindet sich auf einem aufstrebenden Ast
KingCrunch eine Nachricht über ICQ schicken KingCrunch eine Nachricht über AIM schicken KingCrunch eine Nachricht über MSN schicken KingCrunch eine Nachricht über Yahoo! schicken
Standard

... und anständige Editoren können die chm auch direkt einbinden (Eclipse mit PDT )

Und Kinders: Nicht streiten Alle mal tief durchatmen und nehmt euch in den Arm

Trotzdem muss ich auch sagen: Es gibt das Manual zB als chm mit sehr guter Übersicht und Suchfunktion, womit man Parameter und Rückgabewerte von Funktionen leicht und locker flockig rausbekommt. Insofern sollten Rückgabewerte kein Geheimnis mehr sein Und ansonsten gibts das Manual auch in diversen anderen Formaten sowohl online als auch offline.
Und falls man vor einem Rückgabewert wirklich wien Affe vorm Uhrwerk steht, gibt es immer noch zB var_dump oder sowas, die einen Werte gleich mit Format und allen drum und dran zurück geben.

Naja, wir meinen es ja alle nicht bös' (hoffe ich mal ^^), es ist bloss so, dass in jeglicher Hinsicht offizielle Quellen effektiver sind, als tagelang zu experimentieren oder zwischen 30 und 180min auf Antwort in einem Forum zu warten ^^
__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline  
Alt 19.03.2007, 13:14  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich fand weder, dass sich tinchen besonders blöd angestellt hat, noch dass Der_Gerhard besonders barsch war - finde deshalb die Diskussion darüber überflüssig. Wollen wir mal zurück zum Thema kommen?

Ist das eigentliche Problem gelöst tinchen?

Ich finde es übrigens auch nicht so schlimm sich dafür eine eigene Funktion zu schreiben, die mit foreach dann arbeitet. Bevor man 3 Stunden für das Problem aufwendet.. Wenn du das ganze in einer Funktion kapselst, ist es ja dann auch egal, wie das Problem algorithmisch gelöst wurde. Wenn dir irgendwann eine performantere oder schönere Lösung über den Weg läuft kannst du sie ja dann immernoch nachträglich dort einsetzen.
Und Performance spielt bei den meisten Projekten vermutlich sowieso eine untergeordnete Rolle.
Zergling-new ist offline  
Alt 19.03.2007, 16:24  
Erfahrener Benutzer
 
Registriert seit: 16.02.2006
Beiträge: 303
tinchen
Standard

Hallo ihr, es geht mir ja gar nicht darum mich zu beklagen und das Ganze galt nicht
als Vorwurf (auch nicht an Der_Gerhard), sondern war eher allgemein gehalten.

In erster Line bin ich ja hier, um etwas zu lernen. Fragen habe ich täglich - nicht eine,
nicht zwei - wohl eher 20. Natürlich kann und will ich dir hier gar nicht alle posten,
das wäre ja auch quatsch, weil viele Fragen sich durch Erfahrung ganz einfach selbst
beantworten. Trotzdem kommt man sich hin und wieder ganz schön dumm vor,
wenn einem dann erzählt wird, dass der Code, den man da produziert hat ziemlich
gruselig ist. So dann man dann wirklich längere Zeit daran herumprobiert hat. Auf der
anderen Seite soll es dann "erlaubt" sein einfach gruseligen Code zu schreiben,
Hauptsache er funktioniert?
Mein Ziel ist ja Weiterentwicklung und das funktioniert eben nur, wenn man neue
Wege geht. Diese Wege sind aber dann leider noch nicht wirklich gepflastert, so
dass ein fortkommen durchaus mühselig ist. Aber das soll ja so sein, denn ohne Fleiß
keine Weiterentwicklung. Allerdings sind viele Dinge die als einfach gelten vielleicht
gar nicht so leicht, wie man es auf dem ersten Blick vermutet, Oder wer will
Personen, die keine Ahnung von PHP oder
programmieren haben in zwei Sätzen verständlich Erklären was ein Array ist? So
trivial ist das gar nicht und glaubt nicht, dass das alle auf Anhieb verstehen.

Die meisten haben eine Vorstellung von dem was sie machen, aber nur so können
sie neue Dinge einordnen. Wenn man nun aber keine Ahnung hat, ist das mit dem
Anknüpfen eine ganz andere Sache. Ich habe zum Beispiel ziemlich lange gebraucht,
um zu verstehen was eine Funktion überhaupt ist und was man damit machen kann.
Mir war das von Anfang an nicht klar.

So kommt man vom Lesen, irgendwann ins Denken und wundert sich, dass die
Funktion nicht das macht, was man gedacht hat. Aus dem Denken muss man dann
aber erst mal rauskommen und das ist dann hin und wieder gar nicht so einfach.

--
Das Problem ist gelöst, dass mit array_map hat mich sofort in die richtige Richtung
geschubst. Und du (Zergling) ist es vielleicht nicht glauben, aber das hatte ich auch
schon bevor ich das ganze gepostet hatte mit meiner Funktion trimValue versucht,
was nicht wirklich funktioniert hatte - warum kann ich dir nicht einmal sagen. Das man
da auch direkt php Funktionen einsetzen kann, darauf bin ich gar nicht gekommen.
Und schon habe ich wieder etwas gelernt.

Sicher bin ich immer daran interessiert etwas zu verbessern und nehme die Tipps
auch gerne alle an, aber hin und wieder lässt die Motivation schon sehr stark nach,
wenn man nach 8 Stunden Arbeit mal wieder so richtig eins zwischen die Hörner
kriegt. Das heißt nicht, dass man die Arbeit nicht kritisieren darf, sondern vielleicht
an der ein oder anderen Stelle etwas über den Ton nachdenkt. Diese ganze Diskussion
bezieht sich aber gar nicht auf Der_Gerhard oder bestimme Personen, hat letztendlich
auch mit diesem Thread gar nicht so viel zu tun, ... von daher sollten wir es vielleicht
an dieser Stelle dabei bewenden lassen.

Grüße
Tine
tinchen ist offline  
Alt 19.03.2007, 17:52  
Erfahrener Benutzer
 
Registriert seit: 21.07.2005
Beiträge: 209
pepe24
Standard

Darüber hinaus schreibt tinchen die am schönsten formatierten Beiträge!
pepe24 ist offline  
 


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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Rekursive Funktion bricht ab... duras666 PHP Tipps 2008 9 28.04.2008 11:36
gpc_quotes funktion: verbesserungsvorschläge? Promaetheus PHP Tipps 2007 10 12.08.2007 19:29
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
Array in rekursiver Funktion auslesen Gumfuzi PHP Tipps 2007 17 15.11.2005 12:01
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
In einer Funktion auf eine Funktion der Klasse zugreifen phpbeginner PHP Tipps 2005-2 2 28.07.2005 00:30
Funktion in einer Funktion aufrufen? PHP Tipps 2005-2 11 14.06.2005 15:14
[Erledigt] Array-Übergabe in Funktion PHP Tipps 2005 1 08.05.2005 21:05
[Erledigt] Wie kann ich beliebig viele Werte an eine Funktion übergeben PHP Tipps 2005 11 25.01.2005 10:44
Funktion() anwendung -bitte um Hilfe PHP Tipps 2004-2 17 08.12.2004 11:58
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
[Erledigt] Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
chm manual in eclipse pdt einbinden, array_walk erklärung, array_walk verständnis

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.