PHP: PHP5.3 zu PHP5.4

Immer wieder kommt es zu Problemen, wenn PHP Versionen größer 5.3 installiert werden. Ab und an gehe ich auf Fehlersuche.

Log Dateien geben nicht unbedingt Auskunft – ich rufe mit der Konsole die index.php auf und arbeite mich, von da an im Gesamtwerk, weiter.

Integer Dezimal gedacht, Octal programmiert

Beschäftigt hat mich ein, im Browser nicht aufrufbaren Code, der diese Fehlermeldung erzeugte: Parse error: Invalid numeric literal in…………

Den „Fehler“, der keiner ist, findet man schnell. Seit PHP5.4 wird eine Zahl, mit vorangestellter 0 (Null) nicht als dezimal Integer sondern octal interpretiert. Für PHP ist 08 nicht 8 weil es Octal keine 8 gibt! Würde man 0x8 schreiben, ist die Zahl 8 Hexadezimal und auch dezimal 8 – octal allerdings 10.

Es muss also beim programmieren streng darauf geachtet werden, in welchem Zahlensystem man sich denn befindet. Abhilfe könnte ein Code Review mit suchen/ersetzen Bash Lauf sein, will man nicht File für File im VI Editor lesen.

Octales Zahlensystem im Vergleich zu dezimal, hexdezimal und binär. Quelle: Wikipedia

Copyright mit aktuellem Jahr

Erstaunlich – WordPress und Magento haben das nicht vor gesehen: Die Copyright Information unten im Seitenfuss wird nicht automatisch aktualisiert. Zahlreiche How-To’s finden sich im Netz die dem Leser einen PHP Code zur Nachbessereung anbieten.

Bildschirmfoto - 01.09.2016 - 15:58:13
HTML JavaScript

Was ist aber mit denen die nicht in den Code einsteigen wollen oder eben nur auf die Schnelle über das Editorensystem ändern wollen? Dort wird nämlich bei beiden System nur HTML Code zugelassen.

Nach endlos langem suchen habe ich ich Lösung gefunden (mitschreiben, merken):

<script type="text/javascript">
 var d = new Date();
 document.write(d.getFullYear())
 </script>