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.