studyklar
IProg · Klausur 1 · Aufgabe 5

PHP: Array-Schlüssel mit print_r und ein Wert, der seinen Typ wechselt

Zwei kleine PHP-Programme: Ist die Syntax richtig, und was geben sie aus? Rechts steht der Code, darunter, was PHP gerade im Speicher hat. Mit Weiter geht es Zeile für Zeile voran.

Die Aufgabe

Aufgabe 5: PHP Syntax Bits

Prüfen Sie bei den folgenden Schnipseln, ob sie syntaktisch so funktionieren. Benennen Sie Fehler und geben Sie die voraussichtliche Ausgabe an.

a)

$a = array("Emma", 24);$a[10] = 10;$a[] = 7;print_r($a);

b)

$v = TRUE;echo "v = $v - Type : ".getType($v)$v += 3;echo "v = $v - Type : ".getType($v)$v .= "X";echo "v = $v - Type : ".getType($v)

Die Aufgabe ist aus dem Gedächtnisprotokoll nachgebaut. Schnipsel a steht dort vollständig. Bei Schnipsel b schreibt der Verfasser selbst, er sei nicht sicher, ob er die Syntax richtig behalten hat. Wir nehmen b so, wie es im Protokoll steht. Punkte nennt das Protokoll nicht.

In eigenen Worten: Für jeden Schnipsel drei Fragen. Läuft er so? Wenn nein: Wo ist der Fehler? Und was steht am Ende auf dem Bildschirm?

Merke: PHP ist schwach typisiert: Eine Variable hat keinen festen Typ. Der Typ hängt am Wert, und PHP wandelt ihn selbst um, wenn eine Rechnung oder ein Text es verlangt.
  1. a: Zeile für Zeile verfolgen, welche Schlüssel das Array bekommt.
  2. a: Die Ausgabe von print_r aufschreiben.
  3. b: Die Syntax prüfen und den Fehler benennen.
  4. b: Nach der Korrektur je Zeilenpaar Wert und Typ von $v verfolgen.
  5. b: Die ganze Ausgabe aufschreiben.

array() vergibt die Schlüssel selbst

array("Emma", 24) legt ein Array mit zwei Werten an. Ohne eigene Schlüssel nummeriert PHP ab 0: "Emma" bekommt 0, 24 bekommt 1.

Ein Array darf in PHP Werte verschiedener Typen mischen, hier einen String und eine Zahl. Syntaktisch ist die Zeile richtig.

Aus Skript 04, Folie 18: $a1 = array('Harry', 44, 'Hirschweg', 12); In PHP ist jedes Array assoziativ: Jeder Wert hat einen Schlüssel.

Ein Schlüssel mit Lücke

$a[10] = 10; setzt den Wert 10 unter den Schlüssel 10. Die Schlüssel 2 bis 9 entstehen dabei nicht. Ein PHP-Array ist keine Reihe fester Plätze wie in Java, sondern eine Liste von Paaren aus Schlüssel und Wert.

Noch 8 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1a) Array und print_r

welche Schlüssel entstehen

$a = array("Emma", 24);$a[10] = 10;$a[] = 7;print_r($a);
SchlüsselWert in $a
noch leer
LegendeSchnipsel a und das Array $a.