Kapitel 2:
Dynamische Webseiten mit PHP
Seite 26
Zusammenfassung
Dynamische Webseiten werden auf dem Server verarbeitet und nur das Ergebnis kommt beim Webbrowsers des Besuchers an.1. Frage
Was versteht man unter dynamischen Webseiten?
Dymamische Webseiten werden erst im Augenblick der Anforderung durch einen
Client auf dem Webserver generiert.
2. Frage
Nennen Sie je zwei Vor- und Nachteile von dynamischen Webseiten
- Interactiv Dynamische Webseiten können auf Benutzereingaben reagieren.
- + Dynamische Webseiten aktualisieren sich von selbst, da sie erst im Augenblich der Anforderung erzeugt werden.
- - Dynamische Webseiten sind aufwendiger zu erstellen, da zudiesem Zweck erst eine Programmiersprache,z.B.PHP, erlernt werden muss.
- - Dynamische Webseiten bedeuten für den Server mehr Aufwand als statische Webseiten.
3. Frage
Was bedeutet die Abkürzung PHP?
- PHP1: Personal Home Page Tool
- seit PHP3: PHP: Hypertext Preprocessor
4. Frage
Wie nennt man das Program, das den Programcode innerhalb der Webseite
auswertet?
Interpreter
Kapitel 3:
HTML und PHP
Seite 37
1. Frage
Wie können Sie PHP-Code in HTML einbetten?.
Indem sie in die Tags
<?php
und ?>
einschließen.
2. Frage
Wofür ist die echo
-Anweisung?
echo
-Anweisung?
Sie können damit Text ausgeben.
3. Frage
Was müssen Sie dabei beachten?
Sie dürfen in den PHP-Tags keine normalen Text, wie HTML, mehr schreiben. Jeder
Text in diesen Tags muss mit
Sie sollten auch keine PHP-Anweisung außerhalb der Tags schreiben, da sie dort nicht interpretiert werden.
echo
ausgegeben werden. Sie sollten auch keine PHP-Anweisung außerhalb der Tags schreiben, da sie dort nicht interpretiert werden.
4. Frage
Wie können Sie mehrere Anweisung in einem PHP-Tag unterbringen?
Sie müssen jede Anweisung durch ein Semikolon abtrennen. Einen Zeilenbruch erhöht
zwar die Übersichtlichkeit, ist für PHP selbst allerdingst nicht notwendig.
5. Frage
Warum sollten Sie HTML-Tags nicht mit echo
ausgeben?
echo
ausgeben?
- Das Syntax-Highlighting für diese HTML-Tags würde in manchen Editoren fehlen, was die Fehlersuche erschwert.
- Die Auswahl an Anführungszeichen ist begrenzt. Dieselben Anführungszeichen können nicht gleichzeitig für unterschiedliche Zwecke verwendet werden, was oftmals ein Problem darstellt.
- Jedes mit
echo
ausgegebene Zeichen verlangsamt die Auslieferung einer Webseite minimal. - Es ist schlicht und ergreifend hässlich!
6. Frage
Welche Vorteile hat es, Code einheitlich einzurücken?
Es erhöht die Übersichtlichkeit und somit die Lesbarkeit des Codes.
Kapitel 4:
Variablen und Operatoren
Seite 50
1. Frage
Wie können Sie in PHP einen einzeiligen Kommentar schreiben?
Indem Sie dem Kommentar die doppelten Schrägstriche
//
voranstellen.
2. Frage
Wie können Sie in PHP einen mehrzeiligen Kommentar schreiben?
Indem Sie den Kommentar in
/*
und */
einschließen.
3. Frage
Was versteht man unter einer Variablen?
Eine Variable in PHP ist ein Behälter für einen beliebigen Wert, z.B. eine Zahl
oder einen Text. Eine Variable hat einen eindeutigen Namen.
4. Frage
Welche Regeln gelten bei der Namensgebung von Variablen?
- Variablen beginnen mit dem Dollar-Zeichen
$
. - Variablen haben als zweites Zeichen einen Buchstaben oder
einen Unterstrich
_
. - Der Rest des Namens besteht aus Buchstaben, Ziffern und Unterstrichen.
- Bei Variablen wird zwischen Groß- und Kleinschreibung unterschieden.
5. Frage
Was sollten Sie sonst noch bei der Vergabe von Variablennamen beachten?
- Benennen Sie Variablen so, dass Sie später noch wissen, was Sie einmal darin abgespeichert haben.
- Der lowerCamelCase eigner sich hervorragend zur Worttrennung in einem Varialennamen.
- Vermeiden Sie deutsche Umlaute (oder Sonderzeichen aus anderen Sprachen).
6. Frage
Wie können Sie einer Variablen einen Wert zuweisen?
Dies geht mit Zuweisungsoperatoren
=
.
7. Frage
Wie können Sie einen Wert einer Variablen wieder Auslesen?
Indem Sie die Variablen in einem lesenden Zusammehang verwenden, also z.B. bei
echo
oder
auf der rechten Seite einer Zuweisung.
8. Frage
Wie können Sie in PHP zwei Zahlen miteinander multiplizieren?
Dies geht mit dem Multipikations-Operator
*
.
9. Frage
Wie können Sie in PHP zwei Strings verbinden?
Dies geht mit dem Verknüpungs-Operator
.
.
10. Frage
Welche Vorteile haben die verkürzten Zuwisungs-Operatore?
Sie machen den Code kompakter und verhindern, dass Sie sich bei einem der Variablennamen verschreiben.
11. Frage
Wie lauten kürzere Schreibwise von $x = $x - 1;
?
$x = $x - 1;
?$x -= 1;
oder$x--;
Kapitel 5:
PHP-Funktionen
Seite 62
1. Frage
Was ist in die runden Klammern bei Funktionsaufruf geschrieben?
Die Parameter, die der Funktion übergeben.
2. Frage
Was ist der Unterschied der beiden Funktiionen phpinfo()
und
strtolower()
bezüglich der Ausgabe des Ergebnisses der Funktion?
phpinfo()
und
strtolower()
bezüglich der Ausgabe des Ergebnisses der Funktion?
- Die Funktion
phpinfo()
gibt das Ergebnis direkt auf dem Bildschirm aus, ähnlich derecho
-Anweisung. - Die Funktion
strtolower()
gibt das Ergebnis als Rückgabewert zurück. Sie müssen den Rückgabewert explizit mitecho
ausgeben oder durch Zuweisung in einer Variable speichern, um das Ergebnis weiterverabeiten zu können.
3. Frage
Wie könne Sie mehrere Parameter an einen Funktionsaufruf übergeben?
Indem Sie alle Parameeter nacheinander in die runden Klammern schreiben, wobei
jeder Parameter durch ein Komma abgetrennt wird.
4. Frage
Was müssen Sie bei mehreren Funktion-Parameter beachten?
Die Reihenfolge der Parameter muss stimmen.
5. Frage
Wo findern Sie Erklärungen zu allen Funktionen, die PHP zur Verfügung stellt?
Auf php.net in der Funkktions-Suche.
6. Frage
Was bedeutet dort der Begriff mixed
in einer Funktion-Beschreibung
?
mixed
in einer Funktion-Beschreibung
?
Dass an dieser Stelle nicht nur ein bestimmter Datentyp (z.B. String) vorkommen kann.
7. Frage
Und was bedeutet der Begriff void
in einer Funktions-Beschreibung
?
void
in einer Funktions-Beschreibung
?
Dies bedeutet, dass diese Funktion keinen Rückgabewert hat.
8. Frage
Was bedeutet die eckigen Klammern um einen Parameter in einer
Funktions-Beschreibung?
Was bedeuten Klammern um einen Parameter in einer Funktions-Beschreibung?
Kapitel 6:
PHP-Datentypen
Seite 79
1. Frage
echo gettype('3.52');
?
echo gettype('3.52');
?
string
2. Frage
echo gettype(null);
?
echo gettype(null);
?
NULL
3. Frage
echo gettype('Heute ist der 15.3. ');
?
echo gettype('Heute ist der 15.3. ');
?
0
4. Frage
echo floatval('Heute ist der 15.3. ');
?
echo floatval('Heute ist der 15.3. ');
?
0
5. Frage
echo floatval('56 ist eine Zahl');
?
echo floatval('56 ist eine Zahl');
?
56
6. Frage
echo "Heute geht es mir $befinden";
?
echo "Heute geht es mir $befinden";
?Notice: Undefined variable: befinden
(sofern Warnungen in PHP aktiviert sind)- Heute geht es mir
- Erklärung: Es wird eine Ersetzung der Variable versucht, welche hier jedoch scheitert, da sie (noch) nicht existiert.
7. Frage
echo 'Heute geht es mir $befinden';
?
echo 'Heute geht es mir $befinden';
?- Heute geht es mir $befinden
- Erklärung: Nur bei doppelten Anführungszeichen wird eine Ersetzung der Variable versucht.
8. Frage
echo 'Hallo' + 'Welt';
?
echo 'Hallo' + 'Welt';
?- 0
- Erklärung: Im Gegensatz zu beispielweise JavaScript ist das
+
in PHP lediglich der Additions-Operator. Nach den Regeln der mathematischen Typwandlung entspricht ein String ohne Zahl am Anfang dem Integer0
.
9. Frage
echo 'Hallo' . 'Welt';
?
echo 'Hallo' . 'Welt';
?
HalloWelt
10. Frage
echo 3 . 7;
?
echo 3 . 7;
?
37 (als String)
11. Frage
echo ' 3.47 . 42.58;
?
echo ' 3.47 . 42.58;
?
3.4742.58 (als String)
Kapitel 7:
Arrays
Seite 97
<?php
$array1 = array('Das', 'ist', 'ein', 'Test');
$array2 = array(1, 2, 3, 4, 5);
$array3 = array(); $array3[3] = array 2; $array3[5] = array 7; $array3[2] = array 1; $array3[] = array 4; $array3[] = array 9; $array3[] = array 6;
$array4 = array 'vorname' => 'Arthur', 'nachname' => 'Dent', 'alter' => 42, ); ?>
1. Frage
Wie können Sie mit den Daten der Arrays die Ausgabe 2
erzeugen ?
2
erzeugen ?
echo $array2[1];
echo $array3[3];
2. Frage
Wie können Sie mit den Daten der Arrays die Ausgabe 4
erzeugen ?
4
erzeugen ?
echo $array2[3];
echo $array3[6];
3. Frage
Wie können Sie mit den Daten der Arrays die Ausgabe ein
erzeugen?
ein
erzeugen?
echo $array1[2];
4. Frage
Wie können Sie mit den Daten der Arrays die Ausgabe Arthur
erzeugen?
Arthur
erzeugen?
echo $array4['vorname'];
5. Frage
Welche Möglichkeiten finden Sie, mit Hilfe eines der Arrays die
Ausgabe 42
zu erzeugen? Der Code echo
'42'
ist natürlich nicht
gestattet!
42
zu erzeugen? Der Code echo
'42'
ist natürlich nicht
gestattet!
-
echo $array4['alter'];
-
echo $array2[3] . $array2[1];
bzw.
echo $array3[6] . $array3[3];
-
echo $array3[5] . $array3[7];
bzw.
echo $array3[7] . $array3[5];
6. Frage
Wie können Sie mit den Daten der Arrays die Ausgabe
Das ist ein Test
erzeugen? Welche Funktion benötigen Sie hierfür?
Das ist ein Test
erzeugen? Welche Funktion benötigen Sie hierfür?
- Die Funktion
implode()
verkürzt den nötigen Code enorm, da Sie sonst aller Array-Elemente mit einer Stringverknüpfung aneinanderhängen müssten. - Vergleichen Sie
echo $array1[0] . '' . $array1[1] . '' . $array1[2] . ''. $array1[3];
- mit
echo implode(' ', $array1);
7. Frage
Wie können Sie mit den vorgegebenen Arrays ohne Nutzung des
Verkettungsoperators die Ausgabe Test ein ist Das
erzeugen? Welche zusätzliche
Funktion kann Ihnen hier das Leben erleichtern?
Test ein ist Das
erzeugen? Welche zusätzliche
Funktion kann Ihnen hier das Leben erleichtern?
- Mit
array_reverse()
ist das Umdrehen von Arrays sehr einfach. echo implode(' ', $array_reverse($array1));
8. Frage
Was bewirken die beiden Funktion array_pop()
und
array_shift()
und was müssen Sie bei Ihrer Anwendung beachtung?
array_pop()
und
array_shift()
und was müssen Sie bei Ihrer Anwendung beachtung?
- Die Funktion
array_pop()
liefert den letzten Wert eines Arrays zurück. - Die Funktion
array_shift()
liefert den ersten Wert eines Arrays zurück. - Beide Funktionen entfernen den zurückgelieferten Wert aus dem ursprünglichen Array.
Kapitel 8:
Formulare und Links
Seite 117
1. Frage
In welcher Variablen legt PHP URL-Parameter ab?
$_GET
(und somit auch in
$_REQUEST
)
2. Frage
In welcher Variablen legt PHP Formulardaten ab?
Die Formulardaten liegen abhängig von der
method
-Angabe des Formulars in $_GET
oder $_POST
. Sie liegen jedoch in jedem Fall in $_REQUEST
.
3. Frage
Wie muss die URL zu einer test.php aussehen, damit der nachfolgende Code
die Ausgabe Hallo Kent Beck
erzeugt?
echo 'Hallo' . $_GET['vorname'] . ''.
$_GET['nachname']
Hallo Kent Beck
erzeugt? echo 'Hallo' . $_GET['vorname'] . ''.
$_GET['nachname']
test.php?vorname=Kent&nachname=Beck
4. Frage
Wie können Die sicherstelle, dass ein Formular immer an die Datei versendet
wird, in der sich das Formular befindet?
Durch einen Selbstverweis. Schreiben Sie mittels PHP die
Ausgabe von
$_SERVER['PHP_SELF']
in das action
-Feld des Form-Tags.
5. Frage
Wie können Sie verhindern, dass Daten, die Sie in ein input
-Feld eingeben, auf dem Bildschirm sichtbar sind?
input
-Feld eingeben, auf dem Bildschirm sichtbar sind?
- Verwenden Sie
type="password"
. - Versenden Sie das Formular mit
POST
6. Frage
Und wie können Sie zusätzliche Daten mit einem Formular verschicken? Der
Benutzer sollte diese Zusatzangaben möglichst nicht bemerken können.
- Verwenden Sie
type="hidden"
. - Versenden Sie das Formular mit
POST
7. Frage
Wie können Sie einen Benutzer mittels HTML-Code Hinweise darauf geben, dass
Sie eine bestimmte Form von Eingabe in einem Feld erwarten?
- Verwenden Sie
placeholder="Eingabehinweis"
. - Führen Sie eine clientseitige Valdierung beispielweise über den Input-Typ
number
oder mit dem Attributpattern
durch. - Grenzen Sie bei nummerischen Werten die möglichen Angaben über die Attribute
min
,max
undstep
ein. - Nutzen Sie das
list
-Attribut und dasdatalist
-Tag, um dem Benutzer mögliche Eingaben vorzuschlagen. - Alternativ kann man natürlich auch einfach einen Eingabehinweis über oder unter dem Formularfeld ausgeben.
8. Frage
Was müssen Sie bei zusammengehörenden Radiobuttons beachten?
Alle zusammengehörenden Radiobuttons müssen den gleichen Wert im
name
-Attribut haben.
Achten Sie jedoch darauf, allen Feldern unterschiedliche Werte im id
-Attribut zu geben.
9. Frage
Was müssen Sie beim Versenden von mehreren zusammengehörigen
Checkbox-Optionen beachten?
Sie müssen
[]
an den Wert im name
-Attribut anhängen, um PHP mitzuteilen,
dass unter diesem Namen mehrere Werte kommen können. PHP erzeugt in diesem Fall ein Array statt eines
String für die Daten.
10. Frage
Sie haben nachfolgende URL. Die Zeichenkette %5B%5D
steht
hierbei für []
in URL-Notation.
Wie kommen Sie an den Wert Banane
heran?
daten.php?obst%5B%5D=Apfel&obst%5B%5D=Kirsche&obst%5B%5D=Kirsche&obst%5B%5D=Banane
%5B%5D
steht
hierbei für []
in URL-Notation. Wie kommen Sie an den Wert
Banane
heran?
daten.php?obst%5B%5D=Apfel&obst%5B%5D=Kirsche&obst%5B%5D=Kirsche&obst%5B%5D=Banane
echo $_GET['obst'][2];
Kapitel 9:
Funktionsentwurf
Seite 123
1. Frage
Mit welchem Schlüsselwort erzeugen Sie eine neue Funktion?
function
2. Frage
Was bezeichnet man als Funktionskopf?
Hiermit bezeichnet man den Teil
function funktionsName()
.
3. Frage
Von welchen Zeichen ist der Funktionskörper eingeschlossen?
Der Funktionskörper wird von geschweiften Klammern eingeschlossen.
4. Frage
Welche der folgenden Funktionsnamen entsprechen nicht den beschriebenen
Namenskonventionen und warum? hauptstadt()
, loesche_eintrag()
,
prüfeEingabe()
, zerlStr()
hauptstadt()
, loesche_eintrag()
,
prüfeEingabe()
, zerlStr()
hauptstadt()
enthält kein Verb.loesche_eintrag()
trennt die zwei Worte mit einem Unterstrich. Diese Schreibweise ist übrigens eine Alternative zu dem von uns verwendeten lowerCamelCase.Man sollte jedoch immer nur eine von beiden Varianten verwenden.zerlString()
verwendet unnötigerweise Abkürzungen, die die Lesbarkeit behindern. Besser wärezerlegeString()
.
Kapitel 10:
Struckturierung von PHP-Skripten
Seite 136
1. Frage
Was versteht man unter dem Begriff Programmlogik?
Die Programmlogik, auch nur Logik genannt, ist der Teil eines Programms, der die eigentliche Arbeit.
2. Frage
Warum sollten Sie Programmlogik und Ausgabe trennen?
Eine Trennung dieser beiden Bereiche erhöht die übersichtlichkeit des Codes. Sie
finden schneller die Codestellen, nach denen Sie suchen.
3. Frage
Welche Gründe sprechen dafür, keine statischen Inhalte mit echo
auszugeben?
echo
auszugeben?
- Statische Inhalte, wie HTML-Formatierungen, sind innerhalb von echo-Anweisungen schlechter
lesbar. Außerdem kostet jede solche Ausgabe minimal Zeit. Je weniger Strings Sie somit mit
echo
ausgeben müssen, desto besser. - Wenn Sie statischen Text und Variablen zusammen ausgeben, müssen Sie beispielsweise String-Verknüpfungen verwenden. Verknüpfungen sind jedoch immer eine Quelle von Fehler.
4. Frage
Was ist der Unterschied zwischen require
und
require_once
?
require
und
require_once
?
- Die Anweisung
require
bindet die genannte Datei in das PHP-Script ein. Wirdrequire
mehrmals mit derselben Datei aufgerufen, wird die Datei auch mehrfach eingebunden. - Wird die Anweisung
require_once
mehrfach mit derselben Datei aufgerufen, werden alle Aufrufe nach dem ersten von PHP ignorieren.
5. Frage
Was ist der Unterschied zwischen require
und
include
?
require
und
include
?
- Die Anweisung
include
erzeugt lediglich PHP-Warnungen, wenn die Datei nicht eingebunden werden kann. - Wird die Anweisung
require
wird in derselben Situation ein PHPFehller erzeugt, der das Skript abbrechen lässt.
6. Frage
Warum sollten Sie fast immer require
und
include
?
require
und
include
?
Wenn eine Datei nicht eingebunden werden kann, ist das ein kritischer Fehler. Das Skript sollte an
dieser
Stelle keinesfalls fortgesetzt werden.
7. Frage
Warum sollte rquire_once
-Anweisungen möglichst immer am Anfang
des PHP-Skriptes stehen?
rquire_once
-Anweisungen möglichst immer am Anfang
des PHP-Skriptes stehen?
- Es ist übersichtlicher, wenn alle Anweisungen an einer Stelle stehen. So müssen Sie nicht im ganzen Dokument nach den restlichen Anweisungen suchen.
- zudem sollten Sie Funktionensowieso am Dateianfang definieren und somit auch eine Funktions-Bibliothek an dieser Stelle einbinden.
Kapitel 11:
Verzweigungen
Seite 164
1. Frage
5 == '5'
5 == '5'
true
2. Frage
5 === '5'
5 === '5'
false
3. Frage
5 === (7 - 2)
5 === (7 - 2)
true
4. Frage
5 != '5'
5 != '5'
false
5. Frage
5 !== '5'
5 !== '5'
true
6. Frage
5 >= 3
5 >= 3
true
7. Frage
5 <= 5
5 <= 5
true
8. Frage
(5 > 3) && (7 >= 6)
(5 > 3) && (7 >= 6)
false
9. Frage
(5 > 3) || (7 <= 6)
(5 > 3) || (7 <= 6)
true
10. Frage
!false
!false
true
11. Frage
!'false'
!'false'
false
12. Frage
!((!false) && (true && 'false'))
!((!false) && (true && 'false'))
false
13. Frage
Welche Alternative gibt es zur elseif
-Anweisung, wenn Sehr sehr
viele verschiedene Fälle haben und jedes Mal dieselbe Variable auf Gleichheit geprüft wird?
elseif
-Anweisung, wenn Sehr sehr
viele verschiedene Fälle haben und jedes Mal dieselbe Variable auf Gleichheit geprüft wird?
false
14. Frage
Für welchen besonderen Fall können Sie den ternären Operator verwenden?
Wenn Sie einem
if-else
-Fall beide Male der selben Variablen
einen Wert zuweisen wollen.
Kapitel 12:
Schleifen
Seite 177
1. Frage
Mit welchen Schleifen können Sie Arrays durchlaufen?
Mit
foreach
,for
und while
. Alle drei
Schleifen sind in der Lage, die Werte eines Arrays zu durchlaufen. Problematisch wird es erst, wenn das
Array Index-Lücken hat.
2. Frage
Mit welcher Schleife können Sie in PHP am elegantesten Arrays durchlaufen?
Am besten ist für diesen Zweck die
foreach
-Schleife geeignet.3. Frage
Wie drücken Sie in der foreach
-Schleife aus, dass Sie sowohl die
Schlüssel als auch die Werte im Schleifenkörper verwenden wollen?
foreach
-Schleife aus, dass Sie sowohl die
Schlüssel als auch die Werte im Schleifenkörper verwenden wollen?
Mit dem Doppelpfeil-Operator
=>
, also zum Beispiel: foreach
($array as $schluessel O=> $wert)
4. Frage
Welche drei Ausdrücke finden Sie im Kopf einer for
-Schleife?
for
-Schleife?
- Startanweisung
- Abbruchbedingung
- Modifikator
5. Frage
Was sind die Aufgaben dieser drei Ausdrücke?
- Die Startanwisung legt den Ausgangswert der Zählvariablen fest.
- Die Abbruchbedingung überprüft in jedem Schleifendurchlauf die Zählvariable und entscheidet, ob die Schleife beendet weden muss.
- Der Modifikator verändert in jedem Schleifendurchlauf den Wert der Zählvariablen, sodass die Abruchbedingung die Schleife irgendwann beenden kann.
6. Frage
Was müssen DSie beu der Verwendung einer while
-Schleife beachten?
while
-Schleife beachten?
- Der Ausgangswert der Zählvariablen wird über der Schleife festgelegt.
- Sie müssen im Körper der Schleife selbst dafür sorgen, dass die Abbruchbedingung die Schleife irgendwann beendet, also zum Beispiel eine Zählvariable verändern.
7. Frage
Was ist eine Endlos-Schleife?
Es ist eine Schleife, deren Abruchbedingung niemals eintritt.
Kapitel 13:
Funktionen mit Parametern und Rückabeweerten
Seite 188
1. Frage
Was müssen Sie tun, um innerhalb einer Funktion auf den Wert einer außerhalb
definierten Variable zugreifen zu können?
- Sie müssen bei der Funktionsdefinition einen Parameter anlegen.
- Sie müssen beim Funktionsaufruf die Variable als Parameter übergeben.
2. Frage
Wie übergeben Sie einer Funktion mehrere Werte?
- Mehrere Parameter werden hintereinander, durch Komma getrennt, angegeben.
- Sie packen alle Werte in ein (assioziatives) Array und übergeben dieses als Parameter.
3. Frage
Was müssen Sie tun, damit Sie einer eigenen Funktion einen Parameter Übergeben
können, diesen aber auch weglassen können?
Sie geben bei der Funktionsdefinition dem Parameter einen Standardwert.
4. Frage
Wie können Sie einen Wert aus einer Funktion zurückgeben?
Mit der
return
-Anweisung.
5. Frage
Wie können Sie mehrere Werte aus einer Funktion zurückgeben?
- Die Anweisung
return
kann immer nur einen Wert zurückgeben. - Dieser Wert darf allerdings ein Array sein.
Kapitel 14:
Mehrdimensonale Arrays
Seite 198
Beispiel 14.4
<?php $staedte = array( array( 'name' => 'München', 'land' => 'Deutschland', 'einwohner' => '1300000', 'partnerstaedte' => array( 'Bordeaux', 'Cincinnati', 'Edinburgh', 'Harare', 'Kiew', ), ), array( 'name' => 'Berlin', 'land' => 'Deutschland', 'einwohner' => 3400000, 'partnerstaedte' => array( 'Paris', 'Budapest', 'Mexico City ', 'Tokio', 'Instanbul', 'Moskau', ), ), array( 'name' => 'Paris', 'land' => 'Frankreich', 'einwohner' => array( 'Rom', 'Berlin', 'Kyoto', 'Mexico City', 'Seoul', 'Washington', ), ), ); ?>
1. Frage
Was versteht man unter mehrdimensionale Arrays?
Das sind Arrays, die als Elemente nicht nur einfache Datentypen wie Strings oder Integers, sondern
selbst wiederum Arrays enthalten.
2. Frage
Wie viele Dimensionen sind bei Arrays maximal möglich?
So viele, wie Sie selbst noch nachvollziehen können. PHP selbst gibt keine Grenze vor. Lediglich der
begrenzte Arbeitsspeicher ihres Webservers kann irgendwann zum Problem werden.
3. Frage
Wie können Sie auf Elemente in den inneren Dimensionen eines Arrays zugreifen?
Indem Sie mehrere Index-Operatoren
[]
verwenden. Der erste Operator gibt die äßerste
Dimension an, der zweite die nächste undsoweiter.
4. Frage
Sehen Sie sich einmal das Array $staedte
aus Abschnitt
14.4 an. Mit welchem Code können Sie das Element mit dem Inhalt Berlin
auslesen?
$staedte
aus Abschnitt
14.4 an. Mit welchem Code können Sie das Element mit dem Inhalt Berlin
auslesen?
- Variante 1:
echo $staedte[1]['name']
- Variante 2:
echo $staedte[2]['partnerstaedte'][1]
Kapitel 15:
Stringbehandlung
Seite 228
1. Frage
Welche Aufgabe hart die Funktion trim()
?
trim()
?
Sie schneidet Leerzeichen am Anfang und am Ende von Strings ab (nicht jedoch innerhalb).
2. Frage
Was erhalten Die als Ausgabe, wenn Sie folgenden Code ausführen?
echo
strlower('Hallo Welt');
echo
strlower('Hallo Welt');
hallo welt
3. Frage
Warum ist die Funktion htmlspecialchars()
so wichtig?
htmlspecialchars()
so wichtig?
Mit ihr können Sie potenziell gefährliche Zeichen in Benutzereingaben maskieren.
4. Frage
Was ist der Vorteil von vprinrf()
gegenüber einer
echo
Anweisung?
vprinrf()
gegenüber einer
echo
Anweisung?
- Sie müssen keine String-Verknüpfung(en) durchführen, um Variablen und statischen Text zu mischen.
- Sie können die Ausgabe der Variablenanpassen, z.B. die Anzahl der Nachkommastellen bei einer Fließkommazahl festlegen oder eine Umwandlung in einen bestimmten Datentypen erzwingen.
5. Frage
Welchen Datentyp gibt time()
zurück?
time()
zurück?
Integer
6. Frage
Welchen Datentyp gibt strftime()
zurück?
strftime()
zurück?
String
7. Frage
Welche Ausgabe erzeugtecho strlen (trim(' Hallo Welt ! '));
?
echo strlen (trim(' Hallo Welt ! '));
?
12
8. Frage
Welchen Datentyp gibt folgender Aufruf von strops()
zurück?
strpos('Hallo Welt', 'h');
strops()
zurück?
strpos('Hallo Welt', 'h');
- Boolean
- Erklärung: Den Kleinbuchstaben
h
gibt es im String nicht, somit ist der Rückgabewertfalse
.
9. Frage
Welchen Datentyp gibt strpos()
zurück?
strpos('Hallo Welt', 'h');
strpos()
zurück? strpos('Hallo Welt', 'h');
Integer
10. Frage
Welchen Datentypen können Sie str_replace()
als Parameter
übergeben?
str_replace()
als Parameter
übergeben?
Strings & Arrays
11. Frage
Welchen Datentyp liefert str_replace()
als Rückgabewert?
str_replace()
als Rückgabewert?
- String, sofern
$subject
ein String ist. - Array, sofern
$subject
Array aus Strings ist.
Kapitel 16:
Persistente Daten
Seite 237
1. Frage
Welche Funktion liest den Inhalt einer Textdatei in einer Variable?
file_get_contents()
2. Frage
Welche Funktion schreibt einen String in eine Textdatei?
file_put_contents()
3. Frage
Welche Funktion wandelt ein Array in einen String um?
serialize()
4. Frage
Welche Funktion macht diese Umwandlung wieder rückgängig?
unserialize()
5. Frage
Welche Nachteil hat die Funktion file_put_contents()
, und wie
umgeht man diesen?
file_put_contents()
, und wie
umgeht man diesen?
- Die Funktion
file_put_contents()
überschreibt standardmäßig alle Daten in einer bereits existierenden Datei. - Sie müssen die Daten zuerst mit
file_get_contents()
als String auslesen, mitunserialize()
in Array umwandeln, dann die neuen Daten im Array ergänzen, das Ganze mitserialize()
wieder serialisieren und dann erst wieder mitfile_put_contents()
die gesamten Daten als String speichern.
Kapitel 17:
HTTP und PHP-Sessionverwaltung
Seite 255
1. Frage
Aus welchen Teilen besteht ein HTTP-Request?
- Request-Line
- Header-Section
- Leerzeile als Trenner zwischen Header und Body
- Entity-Body
2. Frage
Aus welchen Teilen besteht die HTTP-Response?
- Status-Line
- Header-Section
- Leerzeile
- Entity-Body
3. Frage
Welche Request-Methoden werden von HTML-Formularen unterstützt?
GET und POST
4. Frage
Welche HTTP-Request-Header enthält die URL, von der ein Besucher gerade
kommt?
- Die gewünschte URL ist im sogenannten Referrer enthalten, sofern diese Angabe im Browser nicht deaktiviert wurde.
- In der Header-Section wird dieser jedoch
Referer
geschrieben.O
5. Frage
Welche Bedeutung hat ein Status-code von 200
?
200
?Die Anfrage war erfolgreich. Das gewünschte Dokument befindet sich im
Entity-Body.
6. Frage
Welche Bedeutung hat ein Status-Code 404
?
404
?Die gefragten URL oder Information existiert nicht auf diesem Server.
7. Frage
Welche Bedeutung hat ein Status-code von 301
?
301
?Das Dokument wurde dauerhaft zu einer neuen URL verschoben.
8. Frage
Welche Bedeutung hat ein Status-code von 302
?
Welche Bedeutung hat ein Status-code von 302
?Das Dokument wurde vorübergehend zu einer neuen URL verschoben.
9. Frage
Aus welcher Variablen können Sie die HTTP-Header des Request in PHP
auslesen?
$_SERVER
10. Frage
Mit welcher Funktion können Sie HTTP-Response-Header manipulieren?
header()
11. Frage
Warum kann mit HTTP alleine keine Session-Verwaltung funktionieren?
Weil HTTP ein zustandsloses Protokoll ist, also jeder Request isoliert
durchgeführt wird. Der Webserver kann mit reinem HTTP nicht zugeordnen, dass zwei Request isoliert
durchgeführt wird. Der Webserver kann mit reinem HTTP nicht zuordnen, dass zwei Requests vom gleichen
Client abgesetzt wurden.
12. Frage
Wie lange ist eine PHP-Session normalerweise gültig?
Bis der Browser geschlossen wird.
13. Frage
Wie wird eine Session gestartet?
Mit der Funktion
session_start()
.14. Frage
In welcher Variablen werden von PHP die Session-Daten abgelegt?
In der Superglobalen
$_SESSION
.15. Frage
Wie können Sie im Session-Array den Schlüssel 'login'
inklusive
der kompletten restlichen Session löschen?
'login'
inklusive
der kompletten restlichen Session löschen?
$_SESSION = array();
16. Frage
Wie können Sie lediglich den Schlüssel 'login'
aus der
Session löschen?
'login'
aus der
Session löschen?
unset($_SESSION['login']);
Kapitel 18:
Einige Tipps und Tricks aus der PHP-Kiste
Seite 263
1. Frage
Wodurch unterscheiden sich Konstanten von Variablen?
- Zur Befüllung von Konstanten benötigt man die Funktion
define()
. - Ein Überschreiben des Inhalts ist nicht möglich und wird mit einem PHP-Hinweis quittiert.
- Eine Konstante wird üblicherweise komplett in Großbuchstaben und ohne Dollarzeichen bennant .
- Eine Trennung mehrerer Begriffe im Namen erfolgt mittels Underscore
(_)
. - Es sind nur skalare Datentypen (und seit PHP 5.6 Arrays) als Wert möglich.
2. Frage
Mit welcher Konstante können Sie den Level von error_reporting
()
so umstellen, dass keine Meldungen mehr ausgegeben werden?
error_reporting
()
so umstellen, dass keine Meldungen mehr ausgegeben werden?
Hierfür gibt es (derzeit) keine Konstante, Sie müssen stattdessen den Integer
0
verwenden.
3. Frage
Unterscheidet sich, wenn Sie die alternative Syntax für if
-Abfragen und foreach
-Schleifen verwenden, der Ersatz für die schließende
geschweifte Klammer bei den beiden unterschiedlichen Anweisungen?
if
-Abfragen und foreach
-Schleifen verwenden, der Ersatz für die schließende
geschweifte Klammer bei den beiden unterschiedlichen Anweisungen?
Ja, bei einer
if
-Abfrage beendet man die Anweisung mit endif;
und bei einer foreach
-Schleife mit endforeach;
.
Kapitel 20
Einführung in PDO
Seite 263
1. Frage
Welchen Datentyp hat in PHP eine Datenbankä-Verbindung mit PDO?
Es handelt sich um ein Objekt der Klasse PDO.
2. Frage
Was ist der offensichtlichste Unterschied zwischen Arrays und Objekten?
Objekte können Funktionen (sogenannte Methoden) enthalten.
3. Frage
Wie können Sie mit PDO eine SQL-Anweisung ausführen?
Mit der Methode
PDO#query
.4. Frage
Welche Möglichkeiten kennen Sie, um Datensätze aus einem
PDOStatement
auszulesen?
PDOStatement
auszulesen?
Mit den Methoden
PDOStatement#fech()
und
PDOStatement#fetchAll()
5. Frage
Was müssen Sie in PHP tun, um standardmäßig jeden Fehler, den MySQL liefert, zu
sehen?
Sie müssen das PDO-Attribut
PDO::ATTR_ERRMODE
entweder auf PDO::ERRMODE_WARNING
oder PDO::ERRMODE_EXEPTION
setzen.
6. Frage
Welche Vorteile haben die gepufften Abfragen von MySQL?
Sie können mehrere SQL-Abfragen gleichzeitig offen halten.
7. Frage
Welche Schtitte sind notwendig, um von PHP aus Unicode-Saten in MySQL verwalten
zu können?
- Sie müssen bei der SQL-Anweisung
CREATE TABLE
am Ende mit der OptionDEFAULT CHARSET = utf8
die Tabelle auf UTF-8 umstellen. - Sie müssen nach dem Verbindungsaufbau mit der SQL-Anweisung
SET NAMES utf8
die Verbindung auf UTF-8 umstellen.
Kapitel 21:
PDO in der Praxis
Seite 325
1. Frage
Wann müssen Sie bei SQL INSERT
und wann UPDATE
verwendenO?
INSERT
und wann UPDATE
verwendenO?
INSERT
verwenden Sie, um einein Datensatz neu anzulegen und UPDATE
,
um einen vorhandenen Datensatz zu verändern.
2. Frage
Wie können SDie alle Datensätze einer Tabelle mitarbeiter
löschen,
ohne den Autokrement-Wert zu verwenden?
mitarbeiter
löschen,
ohne den Autokrement-Wert zu verwenden?
DELETE FROM mitarbeiter
ohneWHERE
-BedingungDELETE FROM mitarbeiter
mit einerWHERE
-Bedingung, die auf alle Datensätze zutrifft
3. Frage
Wie können Sie diese Tabelle mitarbeiter
komplett löschen?
mitarbeiter
komplett löschen?
DROP TABLE mitarbeiter
4. Frage
Wie unterscheidet sich Prepared Statements von herkömmlichen
SQL-Anweisungen?
- Sie können mehrfach verwendet werden.
- Sie können Platzhalter (
?
oder:platzhalter
) enthalter. - Strings als Werte in Platzhalter werden automatisch in Anführungszeichen gesetzt.
5. Frage
Was müssen Sie tun, um PDOStatement#execute()
ein assoziatives
Array zu übergeben?
PDOStatement#execute()
ein assoziatives
Array zu übergeben?
Sie müssen in dem Prepared Statement mit bennanten Platzhaltern (
:platzhalter
)
arbeiten.
6. Frage
Warum sind Prepared Statements sicherer als herkömmliche
SQL-Anweisungen?
Werte, die für die Platzhalter eingesetzt werden, prüft PDO automatisch auf
gefährliche Zeichen und maskiert diese.