php.de

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

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.07.2007, 02:07  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Nur gäbe es ja noch zusätzlich die Möglichkeit, die Funktion als statische Funktion in der Basis-Klasse zu definieren und aus der Child-Klasse mit parent::myFunc() aufzurufen.

Macht dieser Fall überhaupt Sinn, wenn die Basis-Klasse eh nur einmal vorkommt ?
Ehrlich gesagt verstehe ich die Aussage auch nicht
Zergling-new ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.07.2007, 02:14  
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 kanns dir erklären (juchei!!!)
Parent-Klasse definiert eine statische Methode und alle Childs können sie per parent::methode() abrufen.
PHP-Code:
class Parent {
  public static function 
methode ($a) {
    
// do something useful with $a
  
}
}

class 
Child extends Parent {
  public function 
doSomething ($a) {
    
parent::methode($a)
    
// and so on
  
}

__________________
Nicht jeder Fehler ist ein Bug.
KingCrunch ist offline   Mit Zitat antworten
Alt 18.07.2007, 02:26  
ssm
Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 65
ssm
Standard

Erstmal vielen Dank Euch allen. Hat mir schonmal sehr weitergeholfen !

Nunja, der Schritt zu reiner OOP ist hier im Hirn sicherlich noch nicht abgeschlossen
__________________
IP-Popularität und Linkpopularität
ssm ist offline   Mit Zitat antworten
Alt 18.07.2007, 02:27  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von KingCrunch
Ich kanns dir erklären (juchei!!!)
Parent-Klasse definiert eine statische Methode und alle Childs können sie per parent::methode() abrufen.
PHP-Code:
class Parent {
  public static function 
methode ($a) {
    
// do something useful with $a
  
}
}

class 
Child extends Parent {
  public function 
doSomething ($a) {
    
parent::methode($a)
    
// and so on
  
}

Bravo, Vererbung verstanden, Topic verfehlt Ihr schlittert irgendwie immer ins Off-Topic hab ich das Gefühl
Zergling-new ist offline   Mit Zitat antworten
Alt 18.07.2007, 03:52  
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

Was ist das denn hier für ein Kuddelmuddel? Sehr amüsant, was Alkohol so anrichten kann (nach eigener Aussage)..

-
Zitat:
Zitat von ssm
Ja, daran hatte ich auch schon gedacht - würde nur ein paar Anpassungen erfordern - schmeckt mir aber noch nicht so ganz - vor allem weil die Funktionen vielleicht noch wonaders gebraucht werden !
Zur Not leitest Du die Oberklasse auch bereits ab. Was Zergling über Abhängigkeiten gesagt hat, hat allerdings Hand und Fuß.

- zu getInstance() von KingCrunch: macht doch Sinn, wenn die Funktion statisch ist, existiert doch nicht zwingend eine Objekt-Instanz von SingletonOfItself

-
Zitat:
Tja - nur wie ? Die Datei mit den Funktionen 'functions.php' in einer Methode der Klasse mit include aufzurufen funktioniert nicht wirklich, dass das Variable-Scope der includierten Funktionen dann ja trotzdem jenseits der Klasse liegt.
Hatte ich so verstanden, dass die benötigte Funktion so (natürlich) keine Methode der Klasse der einbindenden Funktion wird (und so z.B. nicht auf Klassenmember zugreifen kann). Überhaupt ist uns der Fragestellende diese wichtige Information bisher schuldig geblieben, was diese ominöse calc() Funktion denn benötigt, arbeitet sie mit Klassenmembern oder nur mit Parametern? In erstem Fall fallen ja schon einige Möglichkeiten weg, z.B. die Funktion als statische Methode einer Eltern- oder sonstigen Klasse aufzurufen.

-
Zitat:
Nur gäbe es ja noch zusätzlich die Möglichkeit, die Funktion als statische Funktion in der Basis-Klasse zu definieren und aus der Child-Klasse mit parent::myFunc() aufzurufen.

Macht dieser Fall überhaupt Sinn, wenn die Basis-Klasse eh nur einmal vorkommt ?
Wenn die Methde ohnehin statisch ist, kannst Du die beinhaltende Klasse auch als besseren Container benutzen und Dir die Ableitung der (dann nicht mehr) 'child' Klassen daraus gleich sparen. Dann nutzt Du eben nicht parent::calc() sondern xyz::calc(). Vererbung lohnt sich m.E. nur, wenn Du so auf die Methode zugreifst $this->calc() oder calc() selbst Klassenmember verarbeitet.
nikosch ist offline   Mit Zitat antworten
Alt 18.07.2007, 11:07  
ssm
Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 65
ssm
Standard

Zitat:
Tja - nur wie ? Die Datei mit den Funktionen 'functions.php' in einer Methode der Klasse mit include aufzurufen funktioniert nicht wirklich, dass das Variable-Scope der includierten Funktionen dann ja trotzdem jenseits der Klasse liegt.
Zitat:
Hatte ich so verstanden, dass die benötigte Funktion so (natürlich) keine Methode der Klasse der einbindenden Funktion wird (und so z.B. nicht auf Klassenmember zugreifen kann). Überhaupt ist uns der Fragestellende diese wichtige Information bisher schuldig geblieben, was diese ominöse calc() Funktion denn benötigt, arbeitet sie mit Klassenmembern oder nur mit Parametern? In erstem Fall fallen ja schon einige Möglichkeiten weg, z.B. die Funktion als statische Methode einer Eltern- oder sonstigen Klasse aufzurufen.
Yep - damit meinte ich, dass eine inkludierte Funktion nicht auf die Klasseninternen properties zugreifen kann, mit denen sie zum Teil arbeitet.

Das ganze Konstrukt läuft etwas so:

PHP-Code:
class square
{
// erstelle Quadrat
}

class 
circle
{
// erstelle Kreis
}

class 
triangle
{
// erstelle Dreieck

Nun gibt es halt eine Reihe von Funktionen die zur Berechnung aller 3 geometrischen Formen benötigt werden.

PHP-Code:
function diameter();
function 
area();
function 
boundaries(); 
Ich überlege halt, wie ich von jeder Klasse am besten auf diese 3 Funktionen zu greifen kann. Sie sollen im besten Fall direkt Klassen-properties nutzen können, ohne sie erneut explizit zugewiesen zu bekommen.

Vererbung durch eine Basis-Klasse "MathLab" order wie auch immer ist sicher eine gute Option - nur wenig flexibel, wenn ich die 3 Funktionen auch noch an anderen Stellen in der Applikation nuntzen möchte, die nichts mit den 3 Klassen zur Erstellung von geometrischen Formen zu tun haben.

Aber ich denke ich werde es erstmal so machen!

Nochmals vielen Dank für die Tips !
__________________
IP-Popularität und Linkpopularität
ssm ist offline   Mit Zitat antworten
Alt 18.07.2007, 11:44  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Ich würde dir ein Interface oder eine abstrakte Basis-Klasse empfehlen. An geometrische Formen werden immer die selben Abfragen gestellt: Umfang, Fläche, Mittelpunkt, Schwerpunkt, .. Die Berechnung muss aber nicht unbedingt gleich sein, somit bringt dir Vererbung einer Basis-Klasse mit vorimplementierten Methoden eigentlich eher weniger. Wichtig wäre aber die Festlegung der Methodennamen für alle geometrischen Figuren ->getCenter(), getArea(), .. und das liefert dir eben eine abstrakte Basis-Klasse (oder ein Interface).
Zergling-new ist offline   Mit Zitat antworten
Alt 18.07.2007, 11:59  
ssm
Benutzer
 
Registriert seit: 21.03.2006
Beiträge: 65
ssm
Standard

Super - vielen Dank !
__________________
IP-Popularität und Linkpopularität
ssm 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
Templatesystem mit Funktionen und Variablen drin? BartTheDevil89 PHP Tipps 2008 6 01.07.2008 09:32
[Erledigt] Klassen und Funktionen wetteronkel PHP Tipps 2008 11 11.06.2008 13:32
Klassen sinnvoll nutzen, Grundlegendes nikosch PHP-Fortgeschrittene 1 30.09.2006 22:08
Fragen zu Klassen Kein Genie PHP Tipps 2006 3 08.05.2006 11:25
Sessions an includete Klassen übergeben Dr_Enquinox PHP Tipps 2006 4 29.04.2006 10:25
Klassen, Funktionen und Session Fatal Error PHP Tipps 2006 1 15.03.2006 19:05
mit html klassen definieren und in php ausgeben PHP-Fortgeschrittene 4 16.01.2006 10:31
PHP und Klassen Erweitern PHP-Fortgeschrittene 1 25.07.2005 17:57
klassen und methoden anderer klassen in methoden.... PHP Tipps 2005 17 25.05.2005 09:46
Klassen auf externem Server PHP-Fortgeschrittene 5 21.04.2005 16:59
Klassen PHP Tipps 2005 5 09.04.2005 18:51
Klassen in Klassen verwenden PHP Tipps 2005 5 23.02.2005 14:08
Externe Referenzen in Klassen nutzen PHP Tipps 2004 3 16.08.2004 21:10
Klassen?! PHP Tipps 2004 14 03.06.2004 17:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
flachenmittelpunkt brrechnen, arbeiten mit einem klasseninternen objekt php

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