PHP rocks! wünscht allen Mitgliedern einen guten Rutsch ins neue Jahr 2017 !!!
Hinweis: Das Forum zieht um! Um keine Datenverluste zu haben, schalten wir zwecks Übernahme der Daten das Forum am Sonntag, den 24.04.2016 um ca. 21:00 Uhr offline und passen anschliessend die DNS-Einträge an.
www.php-rocks.de wird euch dann nach den Aktualisierungen der DNS-Server wieder wie gewohnt uneingeschränkt zur Verfügung stehen.
Danke für euer Verständnis!

Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
PHProcksAutoloader liefert Parse error
#1
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
Antworten
#2
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
Antworten
#3
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
Antworten
#4
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.
Antworten


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  var_export unserialize error Till 9 8.119 13.01.2017, 13:34
Letzter Beitrag: Till

Gehe zu: