Klausur Flashcards
Was ist ein Programmierparadigma?
Ein Programmierparadigma ist ein fundamentaler Programmierstil.
Ein Programmierparadigma ist eine grundlegende Herangehensweise oder Methode zur Lösung von Problemen durch die Gestaltung von Computeralgorithmen. Es umfasst bestimmte Regeln, Konzepte und Muster, die Programmierer beim Entwickeln von Software befolgen.
Beschreiben Sie die Unterschiede zwischen den imperativen, deklarativen, objektorientierten Programmierparadigmen
imperativ: C;
- Fokus auf WIE
- gibt Schritte und Anweisungen an
- zustandsorientiert: Änderung von Variablen und Datenstrukturen
deklarativ: SQL;
- Fokus auf WAS
- gibt an was erreicht werden soll, ohne Schritte dafür anzugeben
- Zustandsunabhängig: Der Fokus liegt auf Bescheibungen von Beziehungen und Regeln
objektorientiert: Java;
-Code wird um Objekte organisiert
-
Was ist der Unterschied zwischen einem compilerbasierten und einem interpreterbasierten
Ansatz zur Übersetzung von Programmen?
Compilerbasiert:
- Übersetzt den gesamten Quellcode auf einmal.
- Erzeugt eine eigenständige ausführbare Datei.
- Analysiert und generiert effizienten Code im Voraus.
- Beispiele: C, C++, Java.
Interpreterbasiert:
- Übersetzt und führt den Code schrittweise aus.
- Keine eigenständige ausführbare Datei.
- Portabler, da nicht an eine Plattform gebunden.
- Einfacheres Debugging während der Ausführung.
- Beispiele: Python, JavaScript, Ruby.
Zu welchem der o.g. Ansätze gehört PHP?
interpreterbasiert, objektorientiert
Stellen Sie drei wichtige Merkmale von Skriptsprachen heraus?
- Interpretation statt Kompilierung
- Dynamische Typisierung (Variablentypen werden während Laufzeit definiert)
- Hohe Abstraktionsebene (Entwickler kümmern sich weniger um Hardwarebene)
Was ist der Unterschied zwischen einer clientseitigen und einer serverseitigen Skriptsprache?
Clientseitige Skriptsprachen:
Ort der Ausführung: Auf dem Computer oder Gerät des Benutzers (Client).
Verwendung: Interaktive Gestaltung der Benutzeroberfläche im Webbrowser.
Beispiel: JavaScript.
Serverseitige Skriptsprachen:
Ort der Ausführung: Auf dem Server, bevor die Seite an den Client gesendet wird.
Verwendung: Serverseitige Logik, Datenbankverarbeitung, Generierung dynamischer Inhalte.
Beispiele: PHP, Python (Django, Flask), Ruby (Ruby on Rails).
Worauf muss man bei der Definition einer Variablen in PHP achten?
1.Dollarzeichen ($): Beginnt mit $.
2.Gültige Namen: Buchstaben, Zahlen, Unterstrich; muss mit Buchstaben oder Unterstrich beginnen.
3.Case-Sensitivität: Beachtet Groß- und Kleinschreibung.
4.Datentypen: Dynamisch typisiert; kann explizit deklariert werden.
5.Bereich (Scope): Lokal oder global; definiert den Gültigkeitsbereich.
6. Initialisierung: Vor Verwendung initialisieren, um unerwartetes Verhalten zu vermeiden.
7. Reservierte Wörter: Vermeide PHP-reservierte Wörter als Variablennamen.
ungeordnete Liste html
<ul>
<li>Element 1</li>
<li>Element 2</li>
<li>Element 3</li>
</ul>
geordnete Liste html
<ol>
<li>Erstes Element</li>
<li>Zweites Element</li>
<li>Drittes Element</li>
</ol>
Link in html
<a>Besuchen Sie Example.com</a>
interne Verknüpfung html
<a>Gehe zur Seite</a>
Bild in html
<img></img>
Tabelle in html
<table>
<tr>
<th>Header 1</th>
<th>Header 2</th>
</tr>
<tr>
<td>Daten 1</td>
<td>Daten 2</td>
</tr>
</table>
Wo können Sie PHP-Befehle in einem HTML-Dokument einfügen?
Innerhalb von HTML-Tags:
<p>Statischer Text. Weiterer statischer Text.</p>
In HTML-Attributen:
<img></img>
In PHP-Dateien:
<?php echo “Hallo, Welt!”; ?>
In eingebetteten PHP-Blöcken:
<?php echo “<p>Durch PHP generierter Text.</p>”; ?>
Muss man in PHP den Typ einer Variablen deklarieren?
nein
Wie können Sie den Inhalt und den Typ einer Variablen erfahren (bzw. ausgeben lassen)
var_dump()
Wie wird ein indexbasiertes Array definiert? Ist es erforderlich, den Typ der zulässigen
Array-Elemente und die Array-Größe zu definieren?
$meinArray = [1, 2, 3, 4, 5];
$meinArray = array(1, 2, 3, 4, 5);
Größe und typ müssen nicht definiert werden
Wie wird ein assoziatives Array definiert? Was ist der Vorteil eines assoziativen Arrays gegenüber einem indexbasierten Array?
Bei einem indexbasierten Array kann man auf die Werte durch die Position zugreifen. Bei assoziativen Arrays kann man selber Schlüssel definieren.
$assoziativesArray = array(
‘Name’ => ‘John’,
‘Alter’ => 25,
‘Stadt’ => ‘Berlin’
);
Wie werden Inhalte (Schlüssel und Werte) eines Arrays ausgegeben?
mit print_r
$array = array(‘Name’ => ‘John’, ‘Alter’ => 25, ‘Stadt’ => ‘Berlin’);
print_r($array);
Worauf muss man achten, wenn man mit echo-Anweisung ein assoziatives Array ausgibt
Wenn Sie auf den Wert eines bestimmten Schlüssels in einem assoziativen Array zugreifen möchten, sollten Sie geschweifte Klammern verwenden, um den Array-Zugriff zu kennzeichnen.
$array = array(‘Name’ => ‘John’, ‘Alter’ => 25, ‘Stadt’ => ‘Berlin’);
echo $array[‘Name’]; // Richtig
Wie wird eine Funktion (mit oder ohne Rückgabe) definiert?
ohne Rückgabewert:
function gruessen($name) {
echo “Hallo, $name!”;
}
// Aufruf der Funktion
gruessen(“Peter”);
mit Rückgabewert:
function multipliziere($zahl1, $zahl2) {
$ergebnis = $zahl1 * $zahl2;
return $ergebnis;
}
// Aufruf der Funktion
$produkt = multipliziere(5, 3);
echo “Das Produkt ist: $produkt”;
Wie kann ein Parameter definiert und beim Aufruf übergeben werden, damit die Änderung des Parameters auch außerhalb der Funktion sichtbar wird?
mit dem & zeichen:
function addiereEins(&$zahl) {
$zahl += 1;
}
$meineZahl = 5;
addiereEins($meineZahl);
echo $meineZahl; // Ausgabe: 6
Ist eine globale Variable innerhalb einer Funktion bekannt? Wie können Sie innerhalb einer Funktion auf globale Variablen zugreifen?
Ja es ist möglich, mit dem Schlüsselwort global:
$globaleVariable = 10;
function funktionMitZugriffAufGlobaleVariable() {
global $globaleVariable;
echo $globaleVariable;
}
funktionMitZugriffAufGlobaleVariable(); // Ausgabe: 10
Kann man bei einem Funktionsaufruf variable Parameteranzahl nutzen? Was muss dafür bei der Definition einer Funktion beachtet werden?
Ja:
function addiere(…$zahlen) {
$summe = 0;
foreach ($zahlen as $zahl) {
$summe += $zahl;
}
return $summe;
}
echo addiere(1, 2, 3); // Ausgabe: 6
echo addiere(5, 10, 15, 20); // Ausgabe: 50
Kann man Parameter einer Funktion auch »verpackt« übergeben und wie?
Ja indem man ein array als variable an die Funktion übergibt und dann in der Funktion auf die einzelnen werte zugreift:
function gruessen($person) {
echo “Hallo, “ . $person[‘Anrede’] . “ “ . $person[‘Name’] . “!”;
}
$meinePerson = array(
‘Anrede’ => ‘Herr’,
‘Name’ => ‘Mustermann’
);
gruessen($meinePerson); // Ausgabe: Hallo, Herr Mustermann!
Können Sie den Einsatz einer anonymen Funktion anhand eines Beispiels erklären?
Ja die Funktion hat keinen namen und wird direkt in einer Variable gespeichert:
// Anonyme Funktion in einer Variable speichern
$multipliziere = function ($zahl1, $zahl2) {
return $zahl1 * $zahl2;
};
// Anonyme Funktion aufrufen
$ergebnis = $multipliziere(3, 4);
echo $ergebnis; // Ausgabe: 12
Kennen Sie den Unterschied zwischen den Funktionen isset und empty? Was gibt die Funktion var_dump aus?
Die funktion isset gibt true zurück wenn eine Variable gesetzt und nicht null ist. Die funktion empty gibt true zurück wenn eine Variable null ist.
$variable = “Hallo”;
if (isset($variable)) {
echo “Die Variable ist gesetzt.”;
} else {
echo “Die Variable ist nicht gesetzt.”;
}
Wie kann man ein Zeichen in einer Zeichenkette (String) finden und ersetzen?
mit str_replace:
$originalString = “Hello, World!”;
$ersetzteZeichenkette = str_replace(‘o’, ‘0’, $originalString);
echo $ersetzteZeichenkette;
// Ausgabe: Hell0, W0rld!
Wie kann man in einer angegebenen Zeichenkette bestimmte Zeichenfolge durch andere
ersetzen?
Die strtr-Funktion ermöglicht das Ersetzen von Zeichen oder Zeichenketten durch andere Zeichen oder Zeichenketten. Sie können ein Array von Ersetzungen angeben. Hier ist ein Beispiel:
$originalString = “Hello, World!”;
$ersetzungen = array(‘o’ => ‘0’, ‘l’ => ‘1’);
$ersetzteZeichenkette = strtr($originalString, $ersetzungen);
echo $ersetzteZeichenkette;
// Ausgabe: He110, W1r1d!
Welche Möglichkeiten besitzt PHP, um assoziative Arrays zu sortieren?
Nach Schlüsseln sortieren:
ksort: Sortiert ein assoziatives Array nach den Schlüsseln in aufsteigender Reihenfolge.
krsort: Sortiert ein assoziatives Array nach den Schlüsseln in absteigender Reihenfolge.
Nach Werten sortieren:
asort: Sortiert ein assoziatives Array nach den Werten in aufsteigender Reihenfolge.
arsort: Sortiert ein assoziatives Array nach den Werten in absteigender Reihenfolge.
Benutzerdefinierte Sortierung:
uksort: Sortiert ein assoziatives Array basierend auf einer benutzerdefinierten Funktion für die Schlüssel.
uasort: Sortiert ein assoziatives Array basierend auf einer benutzerdefinierten Funktion für die Werte.
Wie definiert man eine Klasse, eine Methode und ein Datenfeld
<?php
// Klasse definieren
class BeispielKlasse {
// Datenfeld definieren
public $datenfeld;
// Methode definieren public function beispielMethode() { echo "Dies ist eine Beispiel-Methode."; } }
// Instanz der Klasse erstellen
$instanz = new BeispielKlasse();
// Auf das Datenfeld zugreifen und setzen
$instanz->datenfeld = “Wert für das Datenfeld”;
// Die Methode aufrufen
$instanz->beispielMethode();
?>
Wie werden Objekte erzeugt?
<?php
// Klasse definieren
class BeispielKlasse {
public $datenfeld;
public function beispielMethode() { echo "Dies ist eine Beispiel-Methode."; } }
// Objekt erstellen (Instanz der Klasse)
$meinObjekt = new BeispielKlasse();
// Auf das Datenfeld zugreifen und setzen
$meinObjekt->datenfeld = “Wert für das Datenfeld”;
// Die Methode aufrufen
$meinObjekt->beispielMethode();
?>
Wie werden Konstruktoren angelegt?
In PHP werden Konstruktoren in einer Klasse definiert, um Code auszuführen, wenn ein Objekt dieser Klasse erstellt wird. Ein Konstruktor wird durch eine spezielle Methode mit dem Namen __construct dargestellt. Hier ist ein Beispiel:
php
Copy code
<?php
class BeispielKlasse {
public $datenfeld;
// Konstruktor definieren public function \_\_construct($startwert) { echo "Konstruktor wird aufgerufen. Startwert: $startwert"; $this->datenfeld = $startwert; } public function beispielMethode() { echo "Dies ist eine Beispiel-Methode."; } }
// Objekt erstellen und Konstruktor aufrufen
$meinObjekt = new BeispielKlasse(“Initialwert”);
// Auf das Datenfeld zugreifen und ausgeben
echo $meinObjekt->datenfeld;
?>
Kann man Konstruktoren oder Methoden in PHP überladen? Welche Möglichkeit hat man bei
der Definition von Konstruktoren oder Methoden, um alternative Aufrufmöglichkeiten von
Konstruktoren oder Methoden zu ermöglichen?
Nein man kann sie nicht überladen, aber man kann eine default Argument definieren.
Woran erkennt man eine Klassenvariable und eine Klassenmethode?
sie werden mit static deklaliert
Wie werden Objekte kopiert?
mit clone
$originalObjekt = new BeispielKlasse();
$kopierteObjekt = clone $originalObjekt; // Flache Kopie
Wie werden Objekte verglichen?
Identitätsvergleich (===):
Überprüft, ob zwei Variablen auf dasselbe Objekt verweisen.
$objektA = new BeispielKlasse();
$objektB = $objektA;
if ($objektA === $objektB) {
echo “Die Objekte sind identisch.”;
} else {
echo “Die Objekte sind nicht identisch.”;
}
Methode ==:
Prüft, ob die Werte der beiden Objekte gleich sind, es sei denn, es wurde eine benutzerdefinierte __toString-Methode implementiert.
$objektA = new BeispielKlasse();
$objektB = new BeispielKlasse();
if ($objektA == $objektB) {
echo “Die Werte der Objekte sind gleich.”;
} else {
echo “Die Werte der Objekte sind nicht gleich.”;
}
Wie wird eine Vererbung ermöglicht?
mit dem schlüsselwort extends
Wie wird der Konstruktor der Elternklasse in der abgeleiteten Klasse aufgerufen?
durch parent::
/ Elternklasse
class Tier {
public $name;
// Konstruktor der Elternklasse public function \_\_construct($name) { $this->name = $name; echo "Tier-Konstruktor aufgerufen. Name: $name"; } }
// Abgeleitete Klasse erbt von der Elternklasse
class Hund extends Tier {
public $rasse;
// Konstruktor der abgeleiteten Klasse public function \_\_construct($name, $rasse) { // Aufruf des Konstruktors der Elternklasse parent::\_\_construct($name); $this->rasse = $rasse; echo " Hund-Konstruktor aufgerufen. Rasse: $rasse";
Wie wird eine Schnittstelle in PHP definiert? Wie wird eine Schnittstelle von einer Klasse implementiert?
Mit interface und implements
interface BeispielSchnittstelle {
public function methode1();
public function methode2($parameter);
}
class BeispielKlasse implements BeispielSchnittstelle {
public function methode1() {
echo “Implementierung von methode1”;
}
public function methode2($parameter) { echo "Implementierung von methode2 mit Parameter: $parameter"; } }
Wozu braucht man Namensräume?
Zweck:
Vermeidung von Namenskonflikten.
Organisierung des Codes in logische Gruppen.
Verbesserung von Lesbarkeit und Wartbarkeit, besonders in großen Projekten.
Vorteile:
Isolation verschiedener Teile des Codes.
Bessere Strukturierung und Gruppierung von Klassen und Funktionen.
Klarere Definition von öffentlichen und privaten Bereichen.
Erleichtert die Zusammenarbeit in Team
Wie kann man Fehler (oder Ausnahmen) mit der Try-Catch-Anweisung und der Exception-Klasse behandeln?
try {
// Code, bei dem eine Ausnahme auftreten könnte
// z.B., eine Funktion aufrufen, die eine Exception wirft
$ergebnis = teile(10, 0);
echo “Ergebnis: $ergebnis”; // Wird nicht ausgeführt, wenn eine Exception auftritt
} catch (Exception $e) {
// Code zur Behandlung der Ausnahme
echo “Fehler: “ . $e->getMessage();
} finally {
// Optionaler Block, der immer ausgeführt wird, unabhängig davon, ob eine Ausnahme aufgetreten ist oder nicht
echo “Diese Anweisung wird immer ausgeführt.”;
}
Wie kann man zeilenweise aus einer sequenziellen Datei lesen?
mit fread
<?php
// Dateipfad
$dateipfad = ‘deine_datei.txt’;
// Datei öffnen
$datei = fopen($dateipfad, ‘r’);
// Überprüfen, ob die Datei erfolgreich geöffnet wurde
if ($datei) {
// Zeilenweise aus der Datei lesen und ausgeben
while (($zeile = fgets($datei)) !== false) {
echo $zeile . ‘<br></br>’;
}
// Datei schließen fclose($datei); } else { // Fehler beim Öffnen der Datei echo 'Die Datei konnte nicht geöffnet werden.'; } ?>
Was ist der Unterschied zwischen readfile() und file()?
- Wie kann man Datensätze in eine sequenzielle Datei schreiben?
mit den funktionen fopen, fwrtie, fclose:
<?php
// Dateipfad
$dateipfad = ‘deine_datei.txt’;
// Datensätze
$datensatz1 = “Name: John, Alter: 25, Stadt: Berlin”;
$datensatz2 = “Name: Anna, Alter: 30, Stadt: München”;
$datensatz3 = “Name: Peter, Alter: 22, Stadt: Hamburg”;
// Datei zum Schreiben öffnen oder erstellen (wenn sie nicht existiert)
$datei = fopen($dateipfad, ‘w’);
// Überprüfen, ob die Datei erfolgreich geöffnet wurde
if ($datei) {
// Datensätze in die Datei schreiben
fwrite($datei, $datensatz1 . PHP_EOL);
fwrite($datei, $datensatz2 . PHP_EOL);
fwrite($datei, $datensatz3 . PHP_EOL);
// Datei schließen fclose($datei); echo 'Datensätze wurden erfolgreich in die Datei geschrieben.'; } else { // Fehler beim Öffnen der Datei echo 'Die Datei konnte nicht zum Schreiben geöffnet werden.'; } ?>