Klasse

  • Themenstarter Themenstarter joky_joky
  • Beginndatum Beginndatum
J

joky_joky

Tach zusammen,

ich wollte mal hier so fragen ob mir jemand mal die Grundlegenden Funktionen einer Klasse erklären kann denn ich glaube ich habe da ein Problem im Bezug auf die Verständniss eine Klasse.

Vielleicht wäre jemand so freundlich und könnte mir eine kleine Beispielklasse erstellen.
evtl auch mit der erklärung im Code dazu.


Ich wäre echt sehr dankbar darüber.


Hier ein kleiner Anhang von mir
Das habe ich mal aus langeweile gemacht.

Aber so ganz habe ich den Sinn einer Klasse noch nicht raus.

PHP:
<?php

class begruessung
{ // Klasse beginnt    
var $name;  
var $alter;    

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

} // Klasse endet      

$sag = new begruessung;    
$sag->name = "Thiemo";  
$sag->alter = "30";  
$sag->say_begruessung();

?>
 
Zuletzt bearbeitet von einem Moderator:
Hi,
auf jeden Fall war ein Fehler in dem Script. Es muss eigentlich so lauten:
PHP:
<?php
class begruessung 
{    
	var $name;   
	var $alter;     

	function sag_begruessung()   
	{   
		echo "Hallo $this->name";   
		echo "<br><br>";   
		echo "Du bist heute $this->alter Jahre alt.";   
	}     
}  
$sag = new begruessung;     
$sag->name = "Thiemo";   
$sag->alter = "30";   
$sag->sag_begruessung();
?>
Ja, diese class gibt dir Dein namen und dein Alter aus, dass du hier definierst:
PHP:
$sag = new begruessung;     
$sag->name = "Thiemo";   
$sag->alter = "30";   
$sag->sag_begruessung();
Du kannst jetzt auch noch mehrere Bregrüßungen hinzufügen.
Z.B. so:
PHP:
$sag2 = new begruessung;     
$sag2->name = "Niklas";   
$sag2->alter = "15";   
$sag2->sag_begruessung();

Und statt ner class kannst du das alles nur mit ner Funktion machen. (Ich finde das ist einfacher^^)
PHP:
<?php
function sag_begruessung($name, $alter)   
{   
	echo "Hallo $name";   
	echo "<br><br>";   
	echo "Du bist heute $alter Jahre alt.";   
}     
echo sag_begruessung(Thiemo, 30);
echo "<br><br>";
echo sag_begruessung(Niklas, 15);
?>

Ich hoffe es hat dir geholfen!
Gruß,
Snowowl
 
Für derart einfache Dinge reicht eine Funktion sicherlich, aber es gibt Dinge, die man objektorientiert sehr viel einfacher oder eleganter lösen kann.
 
Johannes Röttger hat gesagt.:
Für derart einfache Dinge reicht eine Funktion sicherlich, aber es gibt Dinge, die man objektorientiert sehr viel einfacher oder eleganter lösen kann.
jepp, zum Beispiel ne Login Klasse, ne Templateklasse, ne MySQL Verbindungsklasse etc
 
Auch eine Funktion ist für solch ein Vorhaben fast schon zu viel des Guten.

Neulich habe ich tatsächlich eine Funktion folgenden Aufbaus gesehen:
PHP:
<?php

	function output($data)
	{
		echo $data;
	}

?>
 
Leute denkt daran wenn ihr von OOP redet zu erwähnen von welcher PHP Version ihr sprecht, da die 4er Version ja noch nciht wirklich viel mit OOP zu tun hat....

Wiederspüche?!
 
Hallo!

Es geht ihm doch nicht über Sinn oder Unsinn von Klassen, sondern um das Verständnisproblem.
Und da ist er nicht allein mit.
Ich beschäftige mich jetzt so ca. 7-8 Monate mit PHP (mitlerweile seit ca. 2 Monaten auch MySQL) und arbeite noch immer ohne Klassen und/oder Funktionen, da ich die Vorgehensweise dieser einfach nicht verstehe.
Irgendwie hilft php.net da auch nicht wirklich weiter.

Gruss Dr Dau
 
Hi,
verstehst du selbst so eine Funktion nciht?
Die ja an und für sich ganz simpel aufgebaut
PHP:
<?php

//Neue Funktion mit dem namen sag_begruessung erstellen
function sag_begruessung($name, $alter)   
{   
//Reinschreiben, was in die Funktion alles rein soll
    echo "Hallo $name";   
    echo "<br><br>";   
    echo "Du bist heute $alter Jahre alt.";   
}     

//Funktion ausgeben, Niklas für $name, 15 für $alter, wie es oben in der Funktion steht
echo sag_begruessung(Niklas, 15);
?>
Gruß,
Snowowl
 
Nicht wirklich. :(
Vielleicht liegt es ja auch nur daran dass ich darin kein Sinn sehe. :confused:
Aber ich habe z.b. eine Videoverwaltung mit rund 500 Zeilen Code.
In dieser wird je nach angeklicktem Link ein Formular zum hinzufügen, bearbeiten oder löschen eingeblendet.
Ich bin mir sicher dass dabei Funktionen und/oder Klassen zu gebrauchen währen.
Nur wüsste ich nicht wie, wo und warum.
Schliesslich könnte ich die Formulare auch einfach in seperate Dateien auslagern und je nach angeklicktem Link einfach includen.
Hierzu würde ich dann eine Switch-Anweisung nehmen.
Dann hätte ich aber noch immer keine Funktionen und/oder Klassen.
 
Zurück