[Résolu] Classes et objets

Mammouth du PHP | 881 Messages

06 sept. 2011, 06:18

Bonjour,

il faudra que je m'y résolve un jour, les classes et les objets me les cassent toujours.

Voilà, je veux profiter d'un code existant pour tenter de m'initier un peu. Mais par où commencer?!?!

J'exploite la bibliothèque GD depuis un bon moment, sans problème .... jusqu'à ce que je mette à jour mon PHP #-o

Voici le code du GD que j'ai installé sur ma machine et sur mon serveur dans le fichier /Graph.php
        if (is_array($params)) {
            switch (count($params)) {
            case 1:
                $obj =& new $class(
                    $params[0]
                );
                break;

            case 2:
                $obj =& new $class(
                    $params[0],
                    $params[1]
                );
                break;
   //Et ça continue de la sorte, jusqu'à case 8:
Vous avez tous cela, j'en suis sûr, sauf ceux qui ont mis à jour.

Voilà le messsage d`erreur que j'obtiens : Deprecated: Assigning the return value of new by reference is deprecated in Graph.php on line 450

Je veux bien corriger le code, mais j'aimerais encore mieux comprendre ce qui se passe.
Que fait cette déclaration au juste?
Par quoi devrais-je la remplacer?

Merci à l'avance.
Modifié en dernier par Patriboom le 06 sept. 2011, 16:39, modifié 1 fois.
Soyez artisans de paix

ViPHP
ViPHP | 2577 Messages

06 sept. 2011, 09:01

Remplacer =& par = ?

Mammouth du PHP | 881 Messages

06 sept. 2011, 15:49

Merci,

Assignation est le mot-clef qui me manquait. Avec ça, j'ai pu trouver dans http://ca.php.net/manual/fr/language.op ... gnment.php que la forme était bel et bien désuette.

La syntaxe correcte semble être:
            case 1:
                $obj = &$class(
                    $params[0]
                );
                break;

            case 2:
                $obj = &$class(
                    $params[0],
                    $params[1]
                );
                break;
Soyez artisans de paix