php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.03.2006, 20:06  
Gast
 
Beiträge: n/a
Standard Klassen / Funktion

Hi
Nach vielen (sehr vielen) lesen von Tutorials ist mir immernochnicht klar, warum ( und wann) man Klassen/Objekte benutzen sollte.

Zum Beispiek wird oft das Beispeil einer MySQL Klasse angegeben, mit der dann zur Datenbank connected wird.
Aber ist es nicht logischer einfach nur eine function dbconnect zu machen und auszuführen, immerhin entfällt dann sowas wie das Instanzieren des Objekts.

Und die Beispiele wie Gemüse oder Hamster Klassen kann ich irgendwie auch nicht übertragen, sodass ich nicht verstehe warum man dort eine Klasse und Objekt benutzt anstatt einfach nur function zu benutzen und den Wert in einer Variable zu speichern.

Ich hoffe ihr könnt mir helfen oder habt noch einen guten Link

Viele Grüße
never
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.03.2006, 20:16  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Tjo.. das Problem haben viele. Am besten fängst du einfach mal an, deine eigenen Klassen zu schreiben. Die kannst du dann hier posten, damit sie besprochen werden können.

Welche Tutorials hast du denn gelesen?
Corvin ist offline  
Alt 01.03.2006, 20:28  
Erfahrener Benutzer
 
Registriert seit: 20.01.2005
Beiträge: 1.557
PHP-Kenntnisse:
Fortgeschritten
Buhmann ist zur Zeit noch ein unbeschriebenes Blatt
Buhmann eine Nachricht über ICQ schicken Buhmann eine Nachricht über MSN schicken
Standard

Klassen eignen sich immer dann, wenn viele zusammenhängende Funktionen die gleichen Variablen gebrauchen, also quasi eine "Funktionsumgebung", wobei es i.d.r. mehrere dieser "variablen-sets" geben kann.
Ein gutes Beispiel ist auch eine Template-Klasse.
In einer Templateklasse brauchen fast alle funktionen ähnliche variablen, wie z.b. das array mit den zugewiesenen variablen oder der inhalt der templatedatei. Es kann ausserdem mehrere dieser "variablen-sets" geben, die nichts miteinander zu tun haben.

Wenn du gerade mit PHP anfängst, brauchst du Klassen i.d.r. nicht, und ich würde mich auch erst mit ihnen beschäftigen, wenn ich die grundlagen ohne probleme beherrsche.

Ein gutes Beispiel ist meiner Meinung nach auch ein Warenkorb. Es passiert zwar i.d.r. nicht, dass du mehrere Warenkörbe in einem script hast, und bei einfachen warenkörben gibt es auch nur eine variable, und zwar ein array mit den ID's der Elemente, die sich im Warenkorb befinden. Dafür gibt es aber viele funktionen, die genau mit dieser variable arbeiten, also elemente hinzufügen, elemente entfernen, den Gesamtpreis errechnen, etc.

Jetzt wirst du sagen, fein, aber dafür brauche ich doch keine Klasse. Man kann ja auch so einfach einen Eintrag an das Array hängen oder die Funktionen ohne die Klasse bereitstellen.
Natürlich kannst du das. Aber 1. Machen funktionen einen sinn, da du bei einer umstellung des Warenkorbsystems nur die Funktionen ändern musst, nicht aber jedes script, in dem der Warenkorb benutzt wird. Eine Klasse macht sinn, da es irgendwie quatsch ist, zehn verschiedenen funktionen eine variable als parameter zu übergeben, die sie sich in einer Klasse auch selber holen können. Ausserdem ist die gefahr, dass die variable versehentlich überschrieben/geändert wird, innerhalb einer klasse nicht so hoch wie ausserhalb.
Buhmann ist offline  
Alt 01.03.2006, 20:30  
Gast
 
Beiträge: n/a
Standard

Hi
Gelesen habe ich die Tutorials von phpManual, http://tut.php-q.net/klassen.html,
das OOP Tutorial aus dem Buch von Carsten Möhrke und noch weitere die ich zufällig bei google gefunden habe(eins war auch hier aus dem Forum).

Ich weiß ja nit worüber ich anfangen soll eine Klasse zus chreiben, da liegt ja das Problem , denn ich weiß einfach nicht wo ich sie einsetzen soll, worin der Vorteil gegenüber einfach Funktionen liegt.
Zum Beispiel hab ich mehrer Funktionen um Session zu verwalten
Z.B:
-Zum setzen von Sessions beim Login
-natürlich um sie zu zerstören
-um die Session für die SPrachdatei zu verwalten
-um (da ich einen timestamp in der DB abspeichere, damit eine session nur für 5 min gültig ist) Sessions in der DB zu aktualsieren falls erforderlich und zu löschen, falls die 5 min abgelaufen sind ohne eine reaktion des users

soll ich draus etwa eine Klasse machen?

EDIT:
@Buhman:
Also sollte man immer dann Klassen verwenden, wenn es darum geht Variablen zu speichern und diese von mehreren Funktionen gleichzeitig benutzt werden sollen ohne sie jedesmal im Parameter zu übergeben, richtig?
 
Alt 01.03.2006, 20:32  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 2.603
Corvin befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von never
soll ich draus etwa eine Klasse machen?
Ja, wieso nicht.
Corvin ist offline  
Alt 01.03.2006, 20:36  
Gast
 
Beiträge: n/a
Standard

@Corvin:
Aber dann müsste ich doch in jeder Datein. z.B: beim Login, im header von den "eingeloggten Seiten" diese Objekt instanzieren, aber das ist doch umständlicher als wenn ich einfach nur
sagen wir mal
sessionCheck(); aufrufe die dann überprüft updatet löscht etc.
 
Alt 01.03.2006, 23:28  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Warum ist das umständlicher? Du musst so oder so etwas einbinden. Erstelle eine Instanz in einer Datei, die Du dann überall einbindest und Du hast genau den gleichen Aufwand.

Vielleicht auch hier mal reinlesen:
http://forum.developers-guide.net/showthread.php?t=317
imported_Ben ist offline  
Alt 01.03.2006, 23:41  
Erfahrener Benutzer
 
Registriert seit: 07.07.2005
Beiträge: 150
sysop
sysop eine Nachricht über ICQ schicken
Standard

der vorteil einer klasse ist der, dass du eigenschaften, die du irgendwann mal festgelegt hast, einfach vererben kannst. mit funktionen müsstest du u.U. 10-12 funktionen ineinander verschachteln, um all diese eigenschaften einem objekt zuzuweisen. all das kannst du dann mit dem aufruf einer einzigen klasse erledigen.

je nach aufwand den du in deinen scripten betreibst, kann es durchaus auch einfacher sein eine funktion zu verwenden. schneller zu programmieren ist eine kleine funktion allemal, allerdings wird deine klasse nach und nach wachsen, deine funktionen werden nur mehr. irgendwann erfindest du das rad bei funktionen neu und schreibst eine funktion doppelt oder dreifach.....
__________________
gruss sys
sysop ist offline  
Alt 02.03.2006, 21:42  
Gast
 
Beiträge: n/a
Standard

Hi
Ich glaube jetzt hab ich den Sinn und den Vorteil von Klassen verstanden

Vielen Dank euch allen!!!!!

Viele Grüße
never
 
 


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
PHP-GTK Tutorial Beitragsarchiv 9 02.11.2005 21:07
Rückgabewert einer rekrusiven Funktion PHP-Fortgeschrittene 7 06.10.2005 18:44
Klassen und OOP Problem PHP-Fortgeschrittene 3 08.09.2005 10:37
(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
klassen und methoden anderer klassen in methoden.... PHP Tipps 2005 17 25.05.2005 09:46
[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
[Erledigt] sql syntax error in funktion, kann aber nix finden :( PHP Tipps 2004 10 20.07.2004 19:19
Referenz auf Funktion übergeben PHP-Fortgeschrittene 7 20.07.2004 09:51

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
vorteil klassen funktionen php, \variablen-sets\ speichern, php funktionen ineinander, http://www.php.de/php-tipps-2006/37704-klassen-funktion.html

Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 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.