web-dev-qa-db-fra.com

Joomla 3.7.5 Utiliser $ this quand il n'est pas dans un contexte d'objet

J'utilise IPage. J'ai obtenu le site Web de l'ancien fournisseur et copié les fichiers sur le serveur IPage et transféré la base de données. Les deux sites Web (l'ancien et le nouveau serveur) ont les mêmes versions, mais l'ancien fonctionne correctement et le nouveau génère cette erreur:

Using $this when not in object context

J'ai discuté avec le support technique IPage et ils m'ont dit que:

Our technical specialist checked and told problem is with Joomla applicatoin related error.

Est-ce que quelqu'un sait comment je peux corriger cette erreur?

Découvert que la version php sur l'ancien serveur (qui fonctionne) est 5.3.29 mais que sur le nouveau serveur est 7.1.1

EDIT

C'était Content - Extension du calendrier de réservation. Je l'ai désactivé et j'ai travaillé ... Mais comment puis-je réparer cette extension?

C'est le message que je reçois quand je désactive l'extension. Le message est à l'endroit où l'extension a eu lieu

2
TakoG

PHP7 génère une erreur lorsque $ this est utilisé dans une fonction appelée statique.

L'erreur devrait vous donner un fichier et un numéro de ligne. Ce sera probablement quelque chose à l'intérieur d'une fonction statique comme:

class ExampleClass {

    public static function exampleFunction() {
        // ...
        $this->someOtherFunction();
        // ...
    }
    public static function someOtherFunction() {
        // ...
    }
}

changement

$this->someOtherFunction();

à

static::someOtherFunction();

Dans le cas ci-dessus, nous supposons que ExampleClass::someOtherFunction est une fonction statique. Si c'est le cas, nous avons terminé. Si ce n'est pas une fonction statique, vous devrez peut-être la changer en une (si elle n'est pas utilisée ailleurs dans le code) ou initialiser la classe et l'appeler:

$instance = new static::class;
$instance->someOtherFunction();
1
David Hayes