php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.05.2006, 12:25  
Benutzer
 
Registriert seit: 02.02.2004
Beiträge: 53
eQuin
eQuin eine Nachricht über ICQ schicken
Standard Wesentliche unterschiede: funktion vs. classe

Kann mir einer bitte die wesentlichen unterschiede in PHP5 zwischen einer Funktion und einer Classe nennen? Also ich benutzte bisher nur Funktionen etc. und keine OOP aber will damit anfangen, aber vorher wissen, wo die markanten uterscheide sind, um zu entscheiden ob es sich für meine Scripte lohnt.
__________________
Böhse Onkelz: "..die Zeit ist ein Dieb.."
eQuin ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.05.2006, 12:35  
Erfahrener Benutzer
 
Registriert seit: 09.11.2004
Beiträge: 194
greenrover
greenrover eine Nachricht über ICQ schicken greenrover eine Nachricht über Yahoo! schicken
Standard

da giebt es nicht wirklich unterschiede....

einen klasse beinhaltet mehrere funktionen...

der größte vorteil ist neben der weiderverwendbarkeit des kodes...

das du alle für diek lasse festgelegten variabelen von jeder funktion aus beschreiben und lesen kannst...

http://www.sebastian-bergmann.de/tal..._mit_PHP_5.pdf
greenrover ist offline  
Alt 18.05.2006, 12:35  
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

Ich denke mal, wennde dir beide Arbeitsweisen angeschaut hast, dürfte dir der Unterschied eigentlich klar sein, wenn auch nicht zwangsläufig bewusst.

Der konkrete Unterschied ist, dass bei funktionaler Programmierung das Ergebniss im Vordergrund steht. Es existieren Funktionen, die bei bestimmten Eingaben bestimmte Ausgaben liefern. Normalerweise sagt die Definition, dass eine Funktion immer das selbe Ergebniss liefert, wenn die selben Eingaben getätigt wurde. Dies wurde jedoch in Zusammenhang mit Zufallszahlen und IO auf Datenträgern etwas aufgeweicht, aber im Grunde bleibts dabei.

In der objektorientierten Programmierung steht das Objekt (logisch irgendwie) im Vordergrund. Diese Objekt besitzt Eigenschaften und Methoden. Die Methoden sind nun im Ansatz vergleichbar mit den Funktionen und die Eigenschaften vergleichbar mit den normalen Variablen, aber: Bei den Methoden ist die Eingabe nicht nur von den Eingaben abhängig, sondern auch von den Eigenschaften des Objekts.

Beispiel:
Man nehme ein Objekt (Auto). Das habe diverse Eigenschaften (Farbe, Position der Blinker/Lampen/Reifen, Größe der Reifen, Anzahl der Reifen, etc) und bestimmte Methoden (fahren, parken, blinken, etc). Die Methoden sind direkt abhängig von den Eigenschaften und beides sind direkt Bestandteile des Objekts.

----

@greenrover: Das is nur der formale Unterschied. Wiederverwendbaren Code kannste auch mit funktionaler Programmierung erreichen.

----

PS: Objektorientiete Programmierung auf Wikipedia
KingCrunch ist offline  
Alt 18.05.2006, 13:46  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von KingCrunch
Wiederverwendbaren Code kannste auch mit funktionaler Programmierung erreichen.
wobei der begriff "funktionale programmierung" nichts mit dem gestümper zu tun hat, das hier besprochen wird. also vorsicht bitte, nicht wieder java mit javascript gleichsetzen.

http://en.wikipedia.org/wiki/Functional_Programming
axo ist offline  
Alt 18.05.2006, 14:52  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard

Unterschiede:
Funktion:
PHP-Code:
<?php
function tuWas() {
  echo 
'Ich tu ja was!';
}
?>
Klasse:
PHP-Code:
<?php
class MyClass {
  function 
tuWas() {
    echo 
'Ich tu ja was!';
  }
}
?>
Eine Klasse beinhaltet Funktionen UND variablen.
Vorteil ist Kapselung:
PHP-Code:
<?php
class Account {
    public 
$name;
    public 
$pass;
    
    function 
__construct($name$pass) {
        
$this->name $name;
        
$this->pass $pass;
    }
    
    function 
isPass($pass) {
        return 
$this->pass == $pass;
    }
    
    function 
save() {
        
// interne Variablen Speichern
    

}

$meinAccount = new Account('desian''topSecret');
$deinAccount = new Account('eQuin''nochMehrTopSecret');

if(
$meinAccount->isPass('nochMehrTopSecret') {
  
// dann kann man das als eine Art BenutzerAnmeldung verstehen
} else {
  
// man macht eine Fehlerausgabe
}

if(
$deinAccount->isPass('nochMehrTopSecret') {
  
// dann kann man das als eine Art BenutzerAnmeldung verstehen
} else {
  
// man macht eine Fehlerausgabe
}
// was wird wohl richtig sein?

// und jetzt wird gespeichert:
$meinAccount->save();
$deinAccount->save();
?>
So hast du immer spezielle Daten eines ...Dingens... hier nennt man es halt Objekt.
$meinAccount->save();
wird also andere Daten speichern als
$deinAccount->save();
aber die Daten sehen von ihrer Strucktur her gleich aus.
Haben '$name' und '$pass';

Fnktionen und Klassen sind also total verschiedene Dinge.
Eine Klasse kann man als sowas wie einen 'abstrakten Datentyp' bezeichnen, wo auch noch Methoden/Funktionen dran kleben, die mit genau den gerade aktuellen Daten was machen.
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
Alt 18.05.2006, 15:07  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ob das jetzt Sinn macht jedem Einzeln zu erklären was der Vorteil von OOP ist?
Darüber wurde schon so oft diskutiert..

Fred verschoben:
Fortgeschrittene Anfänger
Zergling-new ist offline  
Alt 18.05.2006, 15:21  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard

Jup aber Anfänger sind Anfänfer und da gild:
Aller Anfang ist schwer!
und: Kommunikation ist einfacher als Autodidakt sein.
und: Dies ist ein PHP-AnfängerBoard.
Darum gild: Wer helfen kann, der helfe.

Und da das ganze Individuell ist und nicht jeder jede Formulierung verstehet ist Lehren halt die mühsame Aufgabe es 'jedem' so zu erklären, das ER/SIE versteht.
Sonst hat der Lehrer Versagt.

also
Board == Frage wenn (0 < SuchErgebnis < Übersichtliche_Anzahl)

Des Menschen Überlegenheit ist, dass er Erfahrungen übernehmen kann und nicht selbst machen muß. Aus dieser Überzeugung heraus frage ich immer wieder und beantworte auch immer wieder die selben Fragen (oder schweige einfach). Ist also purer Evolutionsinstinkt
__________________
Wenn dich was ankotzt, machs besser.
DerDesian ist offline  
Alt 18.05.2006, 15:46  
Erfahrener Benutzer
 
Registriert seit: 03.01.2006
Beiträge: 253
CC84
Standard

Ich denke ihr vereinfacht das Problem Function oder class alle ein ganz kleines bisschen.

Es bedarf meiner Meinung nach mehr als nur 5 Zeilen um OOP zu erklären. Da ist es sicherlich sinnvoll da mal ein gutes Buch zu lesen, dass auch mal mehr als 150 Seiten hat. Mag ja Leute geben, die OOP intuitiv verstehen, aber bei mir hats länger gebraucht.
CC84 ist offline  
Alt 18.05.2006, 15:52  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

DerDesian: Du redest Blödsinn, zumindest in deinem letzten Posting.

Außerdem bin ich mir sicher, dass der Threadstarter sich noch nicht
annähernd ausgiebig mit OOP beschäftigt hat. Es gibt so viele Artikel darüber
http://de.wikipedia.org/wiki/Objekto...Programmierung
http://de.wikipedia.org/wiki/Klasse_...grammierung%29
..
Zergling-new ist offline  
Alt 18.05.2006, 16:22  
Erfahrener Benutzer
 
Registriert seit: 02.03.2005
Beiträge: 305
DerDesian
Standard

Soso..
Du hast natürlich recht.
..zumindest bei ein paar der Zeilen..
Bei ein paar anderen nicht.
Die Interpretation sei dem Betrachter überlassen.
Das war in dieser Form natürlich völlig unbeabsichtigt und ohne Ziel.
Leider sind Dinge, die man sagt/schribt und Dinge die Verstanden werden nicht immer dieselben Dinge. Dass wiederum kann mehr als nur einen Grund haben.
Verstehst du den Narren nicht?
Zu verstehen heißt zuhören, sich verständlich zu machen heißt in der Sprache reden, die verstanden wird. Nach Kausalitätsregeln muß man dafür sorge tragen, dass eine Ursache eintritt um die gewünschte Wirkung zu erziehlen.

Naja, ich hör mal auf zu Philosophieren.
Sowas is nur.. ähm.. 'Blödsin'...

PS: Nicht böse sein, ich hab grad zu viel TerryPretchat und ein paar Geschichtsbücher der letzten 500 jahre (Aufklärung/Kategorischer Imperativ etc.) gelesen. Das bringt eine seltsame Mischung von Humor zustande...
__________________
Wenn dich was ankotzt, machs besser.
DerDesian 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
variable in funktion JanM PHP Tipps 2006 2 23.07.2006 20:06
Komplexe Funktion: +Übersichtlichkeit, -Performance Jacks Rache PHP Tipps 2006 3 07.06.2006 14:22
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
sql anfrage in funktion greenrover PHP Tipps 2004-2 4 10.11.2004 14: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
php unterschied funktion klasse, php unterschied class function, php: ? klasse vs funktion, unterschied class function php, php fuktion vs klasse, unterschied zwischen klasse und funktion php, unterschied funktion und klasse, function class unterschied php, funktion vs. klassen php, php klassen vs funktionen, funktionen klasen unterschied, php unterschied klassen funktionen, unterschied funktion klasse, php funktion vs klasse, php unterschied function class, klasse vs funktion, php vorteil von funktionen, php klassen vs. funktionen, php unterschied funktion und klasse, php unterschied klasse und funktion

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