PHProcksAutoloader liefert Parse error - Druckversion +- PHP Rocks (https://www.php-rocks.de) +-- Forum: PHP Programmierung (https://www.php-rocks.de/https://www.php-rocks.de/forum/1-php-programmierung.html) +--- Forum: PHP Basics (https://www.php-rocks.de/https://www.php-rocks.de/forum/2-php-basics.html) +--- Thema: PHProcksAutoloader liefert Parse error (/https://www.php-rocks.de/thema/322-re-phprocksautoloader-liefert-parse-error.html) |
PHProcksAutoloader liefert Parse error - jaderbass - 23.08.2018 Hallo liebes Forum, ich nutze den PHPMailer in der Version 6 zusammen mit dem von Euch empfohlenen Autoloader in einer WordPress-Umgebung. Beim Durchsuchen der WordPress debug.logs wird ein Parse error in der Datei mit dem Autoloader angezeigt. Die komplette Meldung lautet: Code: Parse error: syntax error, unexpected ':', expecting ';' or '{' in /.../PHProcksAutoloader.php on line 16 Es betrifft hier die Zeile mit der Methode Prepare: PHP-Code: private function Prepare( $class_name ) : bool { In meinem Editor (Dreamweaver) wird weiterhin die Zeile 19 rot angezeigt mit der Meldung Code: syntax-error, unexpected variable (T_VARIABLE) das betrifft die Zeile PHP-Code: $this->ClassName = end( $this->NamespaceRoute ); und die Zeile 26 mit der selben Meldung wie in Zeile 16. Zeile 26 ist PHP-Code: private function Load() : bool { Komischerweise tauchen die Fehler bei den anderen Funktionen nicht auf. Meine PHP-Version ist 7.0.31 Wie kann ich diesen Fehler fixen. Ist es sinnvoll die Typendeklaration am Ende der Funktion zu entfernen? Danke schonmal für Eure Antworten. Jörg RE: PHProcksAutoloader liefert Parse error - Arne Drews - 27.08.2018 Hi, Sorry für die späte Antwort, ich war etwas beschäftigt die letzten Tage. Die Typendeklaration kann man entfernen, die besagt an der Stelle nur, dass die Methode einen boolean als Rückgabe wert sendet. Ich gehe mal davon aus, dass das erst mit einer PHP Version ab 7.1 oder 7.2 möglich ist, da bin ich mir grad nicht sicher. Ich nutze die 7.2 und dort ist das eine reguläre Angabe. Was Dreamweaver angeht, so wird er denke ich mal nur zu wenige Informationen an der Stelle haben, weshalb er das als unerwartet markiert. Ein Fehler sollte daraus nicht resultieren. Der Autoloader wurde auf einer 7.2er PHP geschrieben und funktioniert dort fehlerfrei. Wie gesagt, kannst Du die Angabe des Rückgabe-Datentyp ruhig entfernen, das sollte schon alles sein. Was natürlich merkwürdig ist, dass er die Methoden mit Rückgabe : string nicht anmeckert. Kann vielleicht auch sein, dass WP eigene Autoloader mit meinen kollidieren?! Das kann ich so nicht testen, da fehlende WP-Umgebung. ;-) Gruß Arne RE: PHProcksAutoloader liefert Parse error - jaderbass - 29.08.2018 Hallo Arne, vielen Dank für die Antwort. Ich habe jetzt die Typisierung rausgenommen. Mal sehen ob der Error-Log nochmal anspringt, ich denke aber, dass das Skript jetzt funktionieren wird. Auf dem Server ist momentan nur PHP 7.1 möglich. Kann evtl. der Grund sein. Gruß Jörg RE: PHProcksAutoloader liefert Parse error - Arne Drews - 29.08.2018 Ja, ich bin mir gar nicht so sicher, dass es an der 7.0 liegt. Ich vermute tatsächlich eher ein WP-Konflikt, warum auch immer ?! Wenn es an der PHP-Version liegen würde, müsste er eigentlich auch die : string -Typisierung anmeckern. Er tut das aber ja scheinbar nur bei : bool .
|