2010-09-30 24 views
1

j'ai un script php qui fonctionne parfaitement mais je reçois 2 erreurs:PHP avertissement méthode magique set() class.XMLHttpRequest.php

Warning: The magic method __set() must have public visibility 
and cannot be static in C:\wamp\www\class.XMLHttpRequest.php on line 63 

    Warning: The magic method __get() must have public visibility 
and cannot be static in C:\wamp\www\class.XMLHttpRequest.php on line 89 

est-ce important? puis-je le faire disparaître? ou réparer?

merci d'avance!

+2

Vous devrez montrer le fichier PHP en question. –

+0

veuillez afficher les fonctions '__set()' et '__get()' sur les lignes 63 et 89 ... –

Répondre

1

Afficher le code correspondant.

Vous pouvez résoudre le problème en supprimant le mot-clé static et remplacer private avec public sur les lignes 63 et 89. Mais même si une méthode statique __set() ou __get() privé est PHP invalide et ne fait pas beaucoup de sens, peut-être le gars qui a écrit le code avait une raison de le faire. Consultez les commentaires à proximité pour obtenir des conseils.

+0

ligne 63: fonction privée __set ($ property, $ value), ligne 89: fonction privée __get ($ property) – adam

+0

Vous avez raison de supprimer le "privé" des deux résout la chose, merci! – adam

+0

Oh, n'a pas attrapé le problème de visibilité publique. Si le programmeur rendait la méthode privée, il ne voulait probablement pas que le code externe puisse accéder à la classe. – svens

1

ligne 63: private function __set (propriété $, la valeur de $), ligne 89: __get fonction privée (propriété $)

La source de l'erreur peut se situer dans le code qui appelle ces les fonctions. Combien de parties du site Web appellent __set et __get? (effectuer une recherche récursive de fichier pour cela)

Je dirais qu'il peut être risqué de changer soudainement un privé pour public sans voir globalement ce que cela affecte en premier. Les MVC peuvent être difficiles à comprendre.