PHP 5 : ERREUR : Cannot re-assign $this

PHP 5 : ERREUR : Cannot re-assign $this - PHP - Programmation

Marsh Posté le 29-06-2005 à 15:22:27    

Bonjour,
 
J'ai mis a jour mon serveur en passant de PHP 4.3.1 à PHP 5.01. Mais maintenant les scripts de 'php_writeexcel'(permet de créer un fichier excel) indique une erreur : Cannot re-assign $this in /usr/nekoware/apache2/www/lib/excel/php_writeexcel0.2.2/class.writeexcel_format.inc.php on line 122
 
Voici la partie que se plante :
 

Citation :

function copy($other) { //ligne 120
        $xf = $this->_xf_index;   // Backup XF index //ligne 121
        $this = $other;           // Copy properties  // ligne 122
        $this->_xf_index = $xf;   // Restore XF index  // ligne 123
    }


 
Quel est la difference netre php 4 et php 5?
 
merci d'avance

Reply

Marsh Posté le 29-06-2005 à 15:22:27   

Reply

Marsh Posté le 29-06-2005 à 15:26:00    

Moi j'en sais rien (je connais pas encore assez PHP5), mais par simple lecture de l'erreur je devine qu'il n'est pas possible de modifier $this en PHP5, car effectivement, c'est très très crade.


Message édité par sielfried le 29-06-2005 à 15:26:17

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-06-2005 à 15:27:19    

$this represente l'objet?  
 
comment faire pour contourner le pb?
 
merci

Reply

Marsh Posté le 29-06-2005 à 16:02:41    

Chelou ta fonction copy :heink: Vaudrait plutôt mieux retourner un objet copié :

$zeCopy =& $object->copy();

Reply

Marsh Posté le 12-09-2005 à 11:22:09    

:hello:
 
Quelqu'un a déjà fait la modification de cette classe afin de la faire fonctionner avec php5 ?


---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Marsh Posté le 12-09-2005 à 11:28:20    

Faut faire comme dit Florent .. $this est une variable final , impossible de la modifier


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 12-09-2005 à 11:41:07    

Oui, mais je n'ai pas épluché tout le code histoire de voir dans quel contexte il utilise tout ça.  
Ça me parait bancale de modifier du code comme ça sans connaitre les inscidences.  
Il faut que je choisisse entre deux solutions pour le développement d'un produit. Entre php5 et la classe Spreadsheet_Excel_Writer et php4.2 et cette classe là.
Je ne sais pas ce qui est le mieux en terme de charge sur la machine etc.. Je préfèrerai éviter de perdre du temps à patcher si je sais déjà que c'est peine perdue.


---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Marsh Posté le 12-09-2005 à 11:44:49    

Probablement la version procedurale (probablement 4.2) est plus rapide ... maintenant elle est difficilement maintenable donc elle ne sera probablement plus mise a jour ... donc tu ne pourra pas beneficier des nouvelles technologies / ameliorations de libs


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 12-09-2005 à 12:32:42    

Je vais passer en php5, tant pis pour ce truc. C'est pas une solution durable de développer en php4.2.
 Merci :jap:


---------------
"L'abus de modération, nuit gravement à la consommation"
Reply

Marsh Posté le 12-09-2005 à 22:21:36    

J'ai eu ce léger problème en voulant faire tourner un site provisoirement sous php5. J'avais compris que c'était un bug des première version de php5. Je pensais que c'était corrigé maintenant.
Parce que c'est pas du tout "crade". L'un des rare pattern java que je connais, le pattern state je crois, utilise la reassignation de this.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
Reply

Marsh Posté le 12-09-2005 à 22:21:36   

Reply

Marsh Posté le 13-09-2005 à 08:42:29    

Honnetement je vois pas a quoi sert la reassignation du this ... d'ailleur je serais meme surpris que ca marche en Java..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 13-09-2005 à 09:30:00    

réassigner du this??? :o
Dire que je pensais que le goto était le sommum de la mauvaise programmation...
Franchement, c'est la premiére fois que j'entends parler d'un tel truc.

Reply

Marsh Posté le 13-09-2005 à 09:35:50    

c'est clair que ca marche pas en java non plus [:pingouino]

Reply

Marsh Posté le 13-09-2005 à 09:40:00    

Je viens de faire le test :D Le compilo à l'air de trouver que c'est une veritable hérésie ...Brave compilateur :D..
 
Et non, le summum de la mauvaise programmation c'est les trucs du genre {$$mavar}.. quand je commance a voir des variables dynamiques je saute direct par la fenetre... c'est tellement le foutoir que ça vaut meme pas la peine de continuer a lire le script :p


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 13-09-2005 à 09:44:12    

esox_ch a écrit :

Je viens de faire le test :D Le compilo à l'air de trouver que c'est une veritable hérésie ...Brave compilateur :D..
 
Et non, le summum de la mauvaise programmation c'est les trucs du genre {$$mavar}.. quand je commance a voir des variables dynamiques je saute direct par la fenetre... c'est tellement le foutoir que ça vaut meme pas la peine de continuer a lire le script :p

C'est vrai que c'est pas trés propre comme truc ça.
Alors si on le couple à des exit, break, goto et autres programmation spaguetis. ;)

Reply

Marsh Posté le 13-09-2005 à 09:54:51    

Sans oublier des joli eval() et un register_global on au passage pour assaisonner le tout


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed