Page 1 sur 1

[Résolu] Classes et objets

Posté : 06 sept. 2011, 06:18
par Patriboom
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.

Re: Classes et objets

Posté : 06 sept. 2011, 09:01
par Mazarini
Remplacer =& par = ?

Re: Classes et objets

Posté : 06 sept. 2011, 15:49
par Patriboom
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;