dedlfix: Hilfe bei PHP Erklärungen

Beitrag lesen

Tach!

Der Wert 23 bei $x weil PHP den String "08" automatisch als Zahl 8 erkennt und 8 + 15 = 23 ist?

Ja.

Der Wert 15 bei $y weil PHP die Zahl 08 als 0 interpretiert und daher Gesamt = 15 ergibt?

Vor PHP 7 wurden Oktalzahlen mit fehlerhaften Stellen vor dieser Stelle abgeschitten. Die 8 ist falsch, die 0 bleibt übrig. Bei 018 beispielsweise käme 1 raus. Ab PHP7 soll das einen Parse-Fehler geben. http://php.net/manual/en/language.types.integer.php

Der wert 58 bei $z weil PHP den String "47" als Zahl 47 interpretiert und + 11 dann 58 ergibt?

Ja.

if (!empty(EMPTY)) { //hier erster Syntax Error

empty() erwartete bis PHP 5.5 eine Variable.

  if (!(boolean) _CONSTANT)) { // wirft auch einen Fehler

Bitte Fehlermeldungen nicht nur erwähnen, sondern auch ihren Inhalt anführen. Da ist eine Klammer) zu viel.

Wenn man dann aber den Code ändert nach if (EMPTY == "")) { ..passt es trotzdem nicht?

Wegen der überflüssigen Klammer.

Was macht denn überhaupt (string) 12E-1 und wofür steht 12E-1 ?

Das (string) ist eine Typkonvertierung, 12E-1 ist die Literalschreibweise für eine Exponentialzahl (hier: 12 mal 10 hoch -1).

$x = (bool) " " * (int) (string) 12E-1;
echo $x;

Ergibt 1 aber warum?

Das Leerzeichen typkonvertiert nach Boolean ergibt true. 12E-1 konvertiert nach String ergibt "1.2", konvertiert nach int ergibt 1, true im numerischen Kontext ist 1, 1*1 = 1.

echo ($p < $P) ; ergibt 1 aber warum? wäre doch wie PHP ist kleiner php. Wird hier nach Groß Kleinschreibung verglichen? echo ($p > $P) ergibt "Leer" aber warum? und ($p == $P); ist vermutlich false

Nimm mal lieber var_dump(), das ist genauer als echo, denn echo ändert bestimmte Werte beim Ausgeben. true wird zu 1 beispielsweise. Und dann teste die Ausdrücke einzeln. Wirds dann klarer?

if (strpos($str, 'a')) {

Warum wird hier immer in den Else Zweig gesprungen? Weil das Zeichen a am Anfang vom String steht und daher 0 liefert ?

Ja. Siehe Handbuch zur Funktion strpos() für die Umgehung des Problems. Handbuchlesen ist immer eine gute Idee, besonders bei unbekannten Funktionen.

dedlfix.