2017-09-05 6 views
0

Ich erhalte einen seltsamen Fehler beim Testen eines WordPress-Plugins, das ich auf meinem Server entwickelt habe.PHP: Funktion Called leer

Ich habe lokal mit PHP5.3.29 (PHPBrew) und PHP7 getestet. Ich erhalte die folgenden Fehler

Parse error: syntax error, unexpected 'empty' (T_EMPTY), expecting identifier (T_STRING) in /home/arevicoc/sub_domains/fitmetfriso.nl/wp-content/plugins/wp-clickbank-vendor/core/Helper/Util.php on line 65 

Die Funktion selbst ist ziemlich einfach (ich erhalte den Fehler auf der Definition der Funktion

/** 
* Check if it is empty for a multi-dimensional array 
* 
* @param object $object 
* @param string $name 
* @return void 
*/ 
public static function empty($object, $name){ // Line 65 
    return empty(self::val($object,$name, null)); 
} 

CPanel des Servers ich auf Listen habe getestet ea-php55 .

Warum dieser Fehler auftritt? ich weiß, dass eine Funktion in PHP, aber wenn es in einem Namespace, sollte es keinen Konflikt richtig? vor allem, da es in der Entwicklung arbeitet leer.

Gibt es einen Grund, warum reservierte Schlüsselwörter als Klassenfunktionsname in php 7 verwendet werden dürfen?

Vielen Dank im Voraus :)

Antwort

0

Ich bin nicht sicher, aber vielleicht müssen Sie Ihre Funktion Namen der sonst von leer, um etwas zu ändern. Es kann eingebaute Funktion sein.

3

Sie nicht empty() als Funktionsnamen verwenden können, weil es ein reserviert Schlüsselwort ist. Hier ist die Liste von Schlüsselwörtern, dass Sie nicht als Funktionsnamen verwenden können, um zu definieren: http://php.net/manual/en/reserved.keywords.php

Aus der Dokumentation:

Sie können eine der folgenden Wörter als Konstanten, Klassennamen Funktion oder Methodennamen.

1

leer ist ein reserviertes Schlüsselwort, das Sie nicht für den Namen einer Funktion verwenden: http://php.net/manual/en/reserved.keywords.php

Der Doc sagt:

Sie können eine der folgenden Wörter als Konstanten verwenden , Klassennamen, Funktions- oder Methodennamen.