Klasse

  • Themenstarter Themenstarter joky_joky
  • Beginndatum Beginndatum
Du könntest zum Beispiel eine Funktion erstellen, die ein Formular anzeigt. An die Fkt übergibtst du nun als Parameter die Seite, an die das Formular geschickt werden soll!

Dies wäre doch recht sinnvoll, da du beim Bearbeiten sowie beim Hinzufügen von Videos die selben Daten bearbeitest/hinzufügst!

Und wenn du nun noch ne FUnktion hast, die das verarbeitet, wäre das auch gut!

Angenommen du willst nun noch ein Feld hinzufügen, dass das Erscheinungjahr enthält, must du nur deine Formularfunktion und die Speicherfunktion einmal anpassen ...
 
Und wenn es denn unbedingt eine Klasse sein soll wuerde ich die Daten nicht manuell in die Variablen setzen sondern ueber einen Constructor.

@all: Ich denke es geht hier weniger um den praktischen Nutzen oder Sinn dieser Klasse, sondern um die Grundlagen zur OOP in PHP.

Hier mal Deine Klasse mit Uebergabe der Variablen an den Constructor:
PHP:
class begruessung
{ // Klasse beginnt    
var $name;  
var $alter;    

function begruessung($name,$alter)
{
$this->name=$name;
$this->alter=$alter;
}

function sag_begruessung()  
{  
echo "Hallo $this->name";  
echo "<br><br>";  
echo "Du bist heute $this->alter Jahre alt.";  
}    

} // Klasse endet      

$sag = new begruessung("Thiemo",30);    
$sag->sag_begruessung();

?>

Das da oben ist die PHP4-Variante, funktioniert aber unter PHP5.
Jetzt mal das gleiche fuer PHP5, das funktioniert aber nicht unter PHP4.
PHP:
class begruessung
{ // Klasse beginnt    
private $name;  
private $alter;    

public function __construct($name,$alter)
{
$this->name=$name;
$this->alter=$alter;
}

public function sag_begruessung()  
{  
echo "Hallo $this->name";  
echo "<br><br>";  
echo "Du bist heute $this->alter Jahre alt.";  
}    

} // Klasse endet      

$sag = new begruessung("Thiemo",30);    
$sag->sag_begruessung();

?>

Du siehst, die Unterschiede sind recht gering, aber haben zum Teil spuerbare Auswirkungen.
Ich empfehle Dir einfach mal die beiden Abschnitte ueber OOP in der PHP-Doku zu lesen.
OOP (PHP4)
OOP (PHP5)
 
@firstlord18, kapier ich einfach nicht. :(
Ich habe schon eine Menge an Funktionen und Klassen gesehen, bin aber noch nie hinter das Prinzip gekommen.
Ganz im gegenteil, wenn ich sowas jedesmal sehe, dann finde ich sogar immer dass es ohne Funktionen und Klassen irgendwie einfacher ist..... selbst bei Scripts mit mehreren Tausen Zeilen Code.

@Dennis, ich sage ja, es geht nicht um den Sinn sondern um das Verständnis.
Gumbo sein Code macht sicherlich nicht wirklich Sinn, aber darüber lässt sich ja streiten.
Und obwohl es nur ein paar Zeilen sind, wüsste ich trotzdem nichts damit anzufangen.
Das einzige was ich damit machen könnte.... copy&paste.... wenn ich das Script dann aufrufe und nichts passiert, dann bleibt mir nur die Möglichkeit den Kram wieder zu löschen.
Vom Prinzip der Funktion verstehe ich nur so viel, dass sie Text ausgeben soll..... aber nicht wie ich sie Anwende, drauf zugreife oder sonst was.

@all, ich wollte ja auch nur zum eigentlichem Thema zurück lenken..... denn das ist schnell in den Hintergrund geraten.
Wenn mich das Thema nicht interessieren würde, hätte ich euch die Köpfe darüber einschlagen lassen, ob und wo der Sinn steckt. ;)
Vom Prinzip kann ich jedenfalls auch ganz gut ohne Funktionen/Klassen leben..... sonst hätte ich mit sicherheit schon lange ein eigenen Thread aufgemacht.
 
Naja viele benutzen Klassen in PHP nur als Funktionssammlung.

Ist es im Prinzip auch.
Daher machts sinn, wenn du zuerst mal verstehst, wie eine Funktion funktioniert.

Stell dir eine Funktion mal als abgetrennte PHP Datei vor. Denn das ist sie auch schon fast, da sie keinen Zugriff auf Variablen, oder sonstwas im Script hat (zumindest standardmäßig).
Diese Funktion ist einfach ein Code, den man an jeder beliebigen Stelle des Scriptes aufrufen kann.

Zum Beispiel willst du ein Formular überprüfen.
Jetzt hast du 4 Get-Variablen, die du überprüfen willst.
PHP:
if (isset($_GET['xyz'])) {
  if (!empty($_GET['xyz'])) {
    ...
  }
}
Püsstest du jetzt prüfen.
Denn bevor du überprüfst, ob die Variable leer ist, musst du überprüfen, ob sie existiert (gibt sonst nen Fehler: undefined index)
Stattdessen kannst du auch eine Funktion schreiben:

PHP:
function check_get ($var) { // Hoffe das gibts noch nicht die Funktion :D
  if (isset($var)) {
    if (!empty($var)) {
      return true;
    }
  }
  return false;
}
Die funktion würde jetzt true (1) zurückgeben, wenn die Variable existiert und nicht leer ist.
Jetzt musst du nur noch
PHP:
if (check_get($_GET['xyz']) == "true")
schreiben.

Leuchtet dir der Sinn ein?
Und alles, wo du ein () verwendest, sind auch nur Funktionen von PHP (Schleifen wären jetzt die einzeigen ausnahmen, die mir einfallen. Ach und echo.)
Die meisten kann man auch selbst nachprogrammieren.
 
Zuletzt bearbeitet:
Nein, bei Get-Variablen gibt das ein undefined index aus.
Zumindest bei mir immer.

Ich hab auch bewusst get genommen, bei Post habe ich das auch noch nicht erlebt.

Edit: Selbst, wenn kein Fehler kommt, das Beispiel zeigt aber, was die Funktion bewirken sollte :P
 
@Irgendjemand_1, check_get gibt es (noch) nicht als PHP Variable. ;)
Also vom Verständnis würde ich jetzt sagen dass vor check_get noch ein function muss, oder hat dass funtion nur ein "Schönheitsaspekt"?
Ausserdem stelle ich mir jetzt die Frage wo $var herkommt, müsste diese Variable nicht vorher mit $var=$_GET['xyz']; definiert werden?
Ansonsten denke ich, könnte ich darauf evtl. anfangen aufzubauen..... zur Zeit ist mein Server bloss nicht einsatzfähig, aber irgendwie habe ich im Kopf dass ich mehrfach die gleichen Felder aus verschiedenen Formularen abfrage.
 
Waere es denn nicht auch irgendwo sinnvoller ihn auf entsprechende Seiten zu verweisen als hier alle PHP-Grundlagen durchzukauen?
Immerhin ist das Forum ja eigentlich auch gedacht um eher bei konkreten Problemen zu helfen.
Und die Grundlagen von PHP sind ja doch ein wenig zu umfangreich als dass man sie sinnvoll in einem Forum erklaeren koennte.
Ausserdem haben wir ja auch einiges an Tutorials hier die auch einen Teil der Grundlagen mit abdecken.
 
Mag sein..... so lange die Seiten auf deutsch sind..... bringt ja nicht wirklich viel wenn ich zwar Beispiele sehe, aber die Beschreibung dazu nicht verstehe. :(
Je nach dem wieviel die Seiten taugen, könnten sie ja evtl. auch in die FAQ oder so mit aufgenommen werden.

Wenn wir schon bei sinnvoll sind, es macht auch nicht grad Sinn auf http://hk.php.net zu verlinken..... zumindest von dieser Seite der Erde ist der Server nicht grad der schnellste. ;)
Vom Englisch mal abgesehen..... wo der Grossteil der Seiten ja auf deutsch verfügbar ist.
Schliesslich kommt die Masse der Forenuser ja sicherlich aus Deutschland.
Oder kannst/darfst Du keine Cookies setzen?
 
Ich hab vor kurzem festgestellt, dass die deutsche PHP-Doku scheinbar nicht ganz vollstaendig ist, daher denke ich, dass es dann doch irgendwo besser ist auf die englische Version zu verweisen.
Und mit hk.php.net kommt bei mir halt automatisch wenn ich ueber http://www.php.net die Doku durchsuche. Das ist dann eher persoenliche Faulheit, dass ich das nicht noch auf de.php.net umschreibe.

Zum Thema unvollstaendige Doku siehe hier:
md5() Deutsch
md5() Englisch
 
Zurück