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?
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 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?
  • 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;?
  1. $x -= 1; oder
  2. $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?
  • Die Funktion phpinfo() gibt das Ergebnis direkt auf dem Bildschirm aus, ähnlich der echo-Anweisung.
  • Die Funktion strtolower() gibt das Ergebnis als Rückgabewert zurück. Sie müssen den Rückgabewert explizit mit echo 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 ?
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 ?
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'); ?
string
2. Frage
echo gettype(null); ?
NULL
3. Frage
echo gettype('Heute ist der 15.3. '); ?
0
4. Frage
echo floatval('Heute ist der 15.3. '); ?
0
5. Frage
echo floatval('56 ist eine Zahl'); ?
56
6. Frage
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';?
  • Heute geht es mir $befinden
  • Erklärung: Nur bei doppelten Anführungszeichen wird eine Ersetzung der Variable versucht.
8. Frage
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 Integer 0.
9. Frage
echo 'Hallo' . 'Welt';?
HalloWelt
10. Frage
echo 3 . 7;?
37 (als String)
11. Frage
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 ?
echo $array2[1];
echo $array3[3];
2. Frage
Wie können Sie mit den Daten der Arrays die Ausgabe 4 erzeugen ?
echo $array2[3];
echo $array3[6];
3. Frage
Wie können Sie mit den Daten der Arrays die Ausgabe ein erzeugen?
echo $array1[2];
4. Frage
Wie können Sie mit den Daten der Arrays die Ausgabe 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!
  • 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?
  • 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?
  • 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?
  • 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']
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?
  • 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 Attribut pattern durch.
  • Grenzen Sie bei nummerischen Werten die möglichen Angaben über die Attribute min , max und step ein.
  • Nutzen Sie das list-Attribut und das datalist-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
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() 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äre zerlegeString() .

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?
  • 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?
  • Die Anweisung require bindet die genannte Datei in das PHP-Script ein. Wird require 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?
  • 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?
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?
  • 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'
true
2. Frage
5 === '5'
false
3. Frage
 5 === (7 - 2)
true
4. Frage
 5 != '5'
false
5. Frage
 5 !== '5'
true
6. Frage
 5 >= 3
true
7. Frage
 5 <= 5
true
8. Frage
 (5 > 3) && (7 >= 6)
false
9. Frage
 (5 > 3) || (7 <= 6)
true
10. Frage
!false
true
11. Frage
 !'false'
false
12. Frage
!((!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?
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?
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?
  • 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?
  • 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?
  • 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()?
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');
hallo welt
3. Frage
Warum ist die Funktion 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?
  • 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?
Integer
6. Frage
Welchen Datentyp gibt strftime() zurück?
String
7. Frage
Welche Ausgabe erzeugtecho strlen (trim(' Hallo Welt ! '));?
12
8. Frage
Welchen Datentyp gibt folgender Aufruf von strops() zurück?
strpos('Hallo Welt', 'h');
  • Boolean
  • Erklärung: Den Kleinbuchstaben h gibt es im String nicht, somit ist der Rückgabewert false.
9. Frage
Welchen Datentyp gibt strpos() zurück?
strpos('Hallo Welt', 'h');
Integer
10. Frage
Welchen Datentypen können Sie str_replace() als Parameter übergeben?
Strings & Arrays
11. Frage
Welchen Datentyp liefert 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?
  • 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, mit unserialize() in Array umwandeln, dann die neuen Daten im Array ergänzen, das Ganze mit serialize() wieder serialisieren und dann erst wieder mit file_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?
Die Anfrage war erfolgreich. Das gewünschte Dokument befindet sich im Entity-Body.
6. Frage
Welche Bedeutung hat ein Status-Code 404?
Die gefragten URL oder Information existiert nicht auf diesem Server.
7. Frage
Welche Bedeutung hat ein Status-code von 301?
Das Dokument wurde dauerhaft zu einer neuen URL verschoben.
8. Frage
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?
$_SESSION = array();
16. Frage
Wie können Sie lediglich den Schlüssel '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?
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?
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?
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 Option DEFAULT 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 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?
  • DELETE FROM mitarbeiter ohne WHERE-Bedingung
  • DELETE FROM mitarbeiter mit einer WHERE-Bedingung, die auf alle Datensätze zutrifft
3. Frage
Wie können Sie diese Tabelle 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?
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.