php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.06.2008, 11:53  
Benutzer
 
Registriert seit: 07.05.2008
Beiträge: 35
wetteronkel ist in Verruf geraten
Standard [Erledigt] Klassen und Funktionen

Moin moin...
ich hoffe Ihr seid mir jetzt nicht zu sehr böse, wenn ich jetzt etwas frage, wo sich die Profis entweder vor Lachen auf die Schenkel klopfen oder verständnislos Kopf schütteln.

Ich bin eben manchmal Begriffsstutzig.

Folgendes Fall Beispiel

PHP-Code:
<?php
$a 
10 ;
$b ;
$c $a/$b ;
echo 
$c ;
?>
ist klar, simple und einfach.
nun das ganze als Funktion

PHP-Code:
<?php
function teilen ($a$b )  {
  
$c $a/$b ;
  return 
$c ;
}
 
$a 10 ;
$b ;
teilen ($a,$b);
echo 
$c ;
?>
auch simple.. zumal man jetzt die Funktion auslagern kann und das "Hauptprogramm" von solchen Berechnungen befreien und übersichtlicher gestalten kann.

Jetzt wahrscheinlich die Königsdisziplin... Klassendenken.
Dazu brauche ich eine Klasse.

PHP-Code:
<?php
class test {
  function 
teilen ($a$b )  {
  
$c $a/$b ;
  }
}
?>
Doch halt, da war doch noch was mit Konstruktor...

Wäre diese Variante richtig ?

PHP-Code:
<?php
class test {
  var 
$a ;
  Var 
$b ;
  Var 
$c ;
 
  function 
teilen ($a$b )  {
    
$c $a/$b ;
  }
}
?>
Okay, aber wie rufe ich nun die Klasse auf und erhalte das Ergebnis ?

PHP-Code:
<?php
require_once('test.php');
 
$test->teilen (10,5) ;
 
echo 
this->$c ;
 
?>
Natürlich habe ich im Internet schon versucht mich einzulesen, aber ehrlich gesagt...
Warum müssen da immer Fachchinesische Beispiele dabei rauskommen.
Like das
PHP-Code:
class extends 
Bitte nicht falsch verstehen, Hut ab, vor den Profis, aber erklärende anschauliche Beispiele bringen schaffen die wenigsten.

Bei aller Theorie.. stellen sich dem Einsteiger viele Fragen.

Zum Beispiel: Muss der Name der Klasse auch der Dateiname sein.

Oder was passiert wenn ich mehrere "Funktionen" innerhalb einer Klasse habe, bekomme ich dann widersprüche Aussagen.
um es an meinem obigen Beispiel zu zeigen was ich meine:

PHP-Code:
<?php
class test {
  var 
$a ;
  Var 
$b ;
  Var 
$c ;
 
  function 
teilen ($a$b )  {
    
$c $a/$b ;
  }
 
  function 
addieren ($a$b )  {
    
$c $a+$b ;
  }
 
}
?>
Oder ist lediglich der Aufruf entscheidend und ich kann das Ergebniss in der Gleichen Variable nutzen.

Hintergedanke diese Fragerei ist, ich habe mehrere Datenbanken und möchte aus diesen Lesen bzw. Daten dort ablegen.
Warum in verschiedenen Programmteilen immer wieder die gleichen Zeilen hacken, wenn ich das über eine Klasse vielleicht besser realisieren kann.

Und nochmal, Entschuldigt für meine Begriffsstutzigkeit.

Gruss, Peter

Geändert von wetteronkel (11.06.2008 um 11:55 Uhr).
wetteronkel ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 11.06.2008, 12:03  
Benutzer
 
Registriert seit: 05.06.2008
Beiträge: 78
Normalo befindet sich auf einem aufstrebenden Ast
Normalo eine Nachricht über ICQ schicken
Standard

Du musst da unterscheiden zwischen statischer und erweiterter Logik. Das Teilen ist statisch, da du keine weiteren Parameter oder Folgelogiken hast. Demnach kannst du die Methode "teilen" auch statisch anbieten, d.h. du musst in dem Objekt keine Werte speichern:

PHP-Code:
class test {
    function 
teilen($a$b) {
        return 
$a $b;
    }
}

$c test::teilen(52); // keine Instanz von "test" nötig, statischer Methodenaufruf 
Normalo ist offline  
Alt 11.06.2008, 12:04  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

@Normalo: In dem Fall ist eine Klasse anlegen aber ziehmlich sinnlos
cycap ist offline  
Alt 11.06.2008, 12:07  
Benutzer
 
Registriert seit: 05.06.2008
Beiträge: 78
Normalo befindet sich auf einem aufstrebenden Ast
Normalo eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
@Normalo: In dem Fall ist eine Klasse anlegen aber ziehmlich sinnlos
In der OOP bleibt dir nichts anderes übrig. Prozedural will er's ja nicht, soweit ich das interpretiert hab. Das Thema heißt "Klassen und Funktionen", was wohl bedeuten soll "Klassen und Methoden".
Normalo ist offline  
Alt 11.06.2008, 12:26  
Benutzer
 
Registriert seit: 07.05.2008
Beiträge: 35
wetteronkel ist in Verruf geraten
Standard

Zitat:
Zitat von Normalo Beitrag anzeigen
In der OOP bleibt dir nichts anderes übrig. Prozedural will er's ja nicht, soweit ich das interpretiert hab. Das Thema heißt "Klassen und Funktionen", was wohl bedeuten soll "Klassen und Methoden".

Halt Jungs, Ihr driftet in die falsche Ecke ab...

PHP-Code:
class test {
    function 
teilen($a$b) {
        return 
$a $b;
    }
}
 
$c test::teilen(52); // keine Instanz von "test" nötig, statischer Methodenaufruf 
Alles gut und schön... aber hilft mir nicht weiter.
Ich hab ein Verständnisproblem und es geht weniger um Sinn oder Unsinn.

Mein Problem... ist:
Wie baue ich, Anhand eines simplen Beispiels ( 10 / 2) die Klasse richtig auf.
zweitens, wie spreche ich sie an und wie erhalte ich ein Ergebniss im aufrufenden Programm.

Wenn ich erstmal das Begriffen habe, können wir über statischer und erweiterter Logik plaudern.

Ich weiss, das mag befremdlich wirken, aber ich seh den Wald nicht. Nur Bäume...

Da war doch was mit this->teilen...
Wenn ich das richtig gelesen habe, holt this->funktion das ergebnis aus der Funktion ?
Was mache ich wenn ich mehrere Werte an das Aufrufende Programm übergeben möchte...


Danke schonmal an euch beiden...
Gruss, Peter

Geändert von wetteronkel (11.06.2008 um 12:29 Uhr).
wetteronkel ist offline  
Alt 11.06.2008, 12:43  
Benutzer
 
Registriert seit: 05.06.2008
Beiträge: 78
Normalo befindet sich auf einem aufstrebenden Ast
Normalo eine Nachricht über ICQ schicken
Standard

Ich denke, angesichts der Problematik bist du derjenige, der sich im falschen Forum befindet. Das sind Grundlagen. Find ich arrogant, im Profiforum zu posten. Auch Profis lesen im Anfängerforum.

Zum Thema: PHP: Klassen und Objekte - Manual
Normalo ist offline  
Alt 11.06.2008, 12:54  
Benutzer
 
Registriert seit: 07.05.2008
Beiträge: 35
wetteronkel ist in Verruf geraten
Standard

Zitat:
Zitat von Normalo Beitrag anzeigen
Ich denke, angesichts der Problematik bist du derjenige, der sich im falschen Forum befindet. Das sind Grundlagen. Find ich arrogant, im Profiforum zu posten. Auch Profis lesen im Anfängerforum.

Zum Thema: PHP: Klassen und Objekte - Manual
Entschuldige..
Ich ging nicht davon aus, das Profis im Anfängerforum lesen.
Zweitens ist mir klar, das es sich um grunsätzliche Fragen handelt und die wollte ich von einem Profi beantwortet wissen.
Bevor du das nächste Mal dich hinstellst und über arroganz plapperst, frage dich einmal ob deine Hochnäsigkeit gerechtfertigt ist.
Peter
wetteronkel ist offline  
Alt 11.06.2008, 13:18  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ich will die mal ein schönes Beispiel schreiben (ich geh mal von PHP5 aus):

PHP-Code:
class rechnen
{

  var 
$zahl1,$zahl2;


  function 
__construct($a$b)
  {
    
// Kostruktor:
    // wir brauchen so oder so mindestens 2 zahlen zum Rechnen, also können wir die gleich bei der Objektinstanzierung festlegen
    
$this->zahl1 $a;  // hiermit haben wir die beiden zahlen fest im Objekt und können aus allen Methoden darauf zugreifen
    
$this->zahl2 $b;
  }
  
  function 
getSumme() // Parameter brauchen wir nicht, alles was wir brauchen ist im Objekt enthalten
  
{
    return 
$this->zahl1 $this->zahl2;
  }

  function 
getDiff()
  {
    return 
$this->zahl1 $this->zahl2;
  }

Benutzen kannst du das dann so:
PHP-Code:
$rech1 = new rechnen(12,10);
$rech2 = new rechnen(4,3); // Damit haben wir jetzt 2 Objekte mit denen wir unabhängig voneinander arbeiten können

// Dann wollen wir uns mal ausgeben lassen was rauskommt, die Reihenfolge hierbei ist egal:
echo "Summe Rechnung1:".$rech1->getSumme()."<br>";  // ist 22
echo "Differenz Rechnung2:".$rech2->getDiff()."<br>";  // ist 1
echo "Differenz Rechnung1:".$rech1->getDiff()."<br>"// ist 2
echo "Summe Rechnung2:".$rech2->getSumme()."<br>"// ist 7 
cycap ist offline  
Alt 11.06.2008, 13:27  
Benutzer
 
Registriert seit: 07.05.2008
Beiträge: 35
wetteronkel ist in Verruf geraten
Standard

[quote=cycap;12091]Ich will die mal ein schönes Beispiel schreiben (ich geh mal von PHP5 aus):

...

quote]

Genau so meinte ich das ...
Danke !

Gruss, Peter
wetteronkel ist offline  
Alt 11.06.2008, 13:30  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von wetteronkel Beitrag anzeigen
Ich ging nicht davon aus, das Profis im Anfängerforum lesen.
Zweitens ist mir klar, das es sich um grunsätzliche Fragen handelt und die wollte ich von einem Profi beantwortet wissen.
Bevor du das nächste Mal dich hinstellst und über arroganz plapperst, frage dich einmal ob deine Hochnäsigkeit gerechtfertigt ist.
Bevor du andern Hochnäsigkeit vorwirfst, wenn du das gelesen hättest, wäre auch alles klar gewesen.
__________________
Gruss
L
lazydog 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
[Erledigt] Klasse / Funktionen verwenden PHP4ever PHP Tipps 2008 7 27.07.2008 16:24
[Erledigt] Submit Button mit 2 Funktionen Spacecop PHP Tipps 2008 23 27.05.2008 17:38
Klassen und externe Funktionen ? ssm PHP-Fortgeschrittene 17 18.07.2007 11:59
Funktionen überprüfen und Grafik Funktionen hans.karl2 PHP Tipps 2006 10 31.07.2006 20: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
[Erledigt] Auswertung von Funktionen innerhalb von Strings PHP Tipps 2006 5 30.01.2006 14:03
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 in Klassen verwenden PHP Tipps 2005 5 23.02.2005 14:08
Klassen?! PHP Tipps 2004 14 03.06.2004 17:33


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