Me aparece el siguiente mensaje...
Deprecated: Assigning the return value of new by reference is deprecated in C:\Archivos de programa\EasyPHP5.3.0\www\moodle\calendar\view.php on line 315
que puede ser???
algun consejo para hacer que desaparezca ese mensaje.
Saludos!!
El problema es que posiblemente esté usando un método solo disponible en PHP 4, relacionado con el símbolo &, para los parámetros pasados por referencia.
¿Qué versión de Moodle y PHP estás usando? A lo mejor es necesario que actualices la de PHP..
¿Qué versión de Moodle y PHP estás usando? A lo mejor es necesario que actualices la de PHP..
estoy usando PHP 5.2.0 y la version 1.9.5 de Moodle
Esto es lo que contiene la línea 315 de dicho script:
$display = &New stdClass;
Supongo que el error que aparece hace referencia al símbolo &. Lo he comprobado, y en versiones anteriores de Moodle esa línea aparece exactamente igual. No sé si el eliminar ese símbolo supondrá algún problema o no.
¿Lo que aparece es un mensaje de advertencia o de error? Es decir, ¿la ejecución del script php se detiene o aparece el interfaz de Moodle y simplemente muestra el mensaje de advertencia entre medias?
$display = &New stdClass;
Supongo que el error que aparece hace referencia al símbolo &. Lo he comprobado, y en versiones anteriores de Moodle esa línea aparece exactamente igual. No sé si el eliminar ese símbolo supondrá algún problema o no.
¿Lo que aparece es un mensaje de advertencia o de error? Es decir, ¿la ejecución del script php se detiene o aparece el interfaz de Moodle y simplemente muestra el mensaje de advertencia entre medias?
Hola Xavier y Susana,
Estás en lo cierto Xavier, en PHP5 el uso del "&" está obsoleto y no se "debe usar".
Es incorrecto hacer:
$display = &New stdClass;
Hay que hecerlo así:
$display = New stdClass;
$myvalue=&$display->getValue();
Más info en:
http://es2.php.net/manual/en/language.references.return.php
Ah, y además, esto (que aunque no viene al caso, puede ser interesante):
http://es2.php.net/eregi
Susana, debes estar usando la version PHP 5.3, ya que en las versiones 5.2.x ese mensaje de adveretencia no se ve ya que estas versiones aún lo soportan.
a partir de laversión 5.3, ya aparece ese mensaje.
No supone ningún problema, tan sólo es un aviso. Nos viene bien saberlo a los desarrolladores para no usar más esa construccion.
http://tracker.moodle.org/browse/MDL-20055
Si quieres eliminar el mensaje, prueba con:
- Edita el fichero php.ini (esta en la carpeta Windows)
- Busca la linea:
error_reporting = E_ALL & ~E_NOTICE
(hay varias pro sólo una está descomentada, sin el ';')
cámbiala por:
error_reporting = E_ALL & ~E_NOTICE | ~E_STRICT
Si esto no funciona, busca la linea:
display_errors = On
Cambiala por:
display_errors = Off
(de esa forma ocultarás todos los mensajes de error y avisos que pueda lanzar el php)
Hasta pronto,
Salu2,
J. Raul (juagarc4)
Estás en lo cierto Xavier, en PHP5 el uso del "&" está obsoleto y no se "debe usar".
Es incorrecto hacer:
$display = &New stdClass;
Hay que hecerlo así:
$display = New stdClass;
$myvalue=&$display->getValue();
Más info en:
http://es2.php.net/manual/en/language.references.return.php
Ah, y además, esto (que aunque no viene al caso, puede ser interesante):
http://es2.php.net/eregi
Susana, debes estar usando la version PHP 5.3, ya que en las versiones 5.2.x ese mensaje de adveretencia no se ve ya que estas versiones aún lo soportan.
a partir de laversión 5.3, ya aparece ese mensaje.
No supone ningún problema, tan sólo es un aviso. Nos viene bien saberlo a los desarrolladores para no usar más esa construccion.
http://tracker.moodle.org/browse/MDL-20055
Si quieres eliminar el mensaje, prueba con:
- Edita el fichero php.ini (esta en la carpeta Windows)
- Busca la linea:
error_reporting = E_ALL & ~E_NOTICE
(hay varias pro sólo una está descomentada, sin el ';')
cámbiala por:
error_reporting = E_ALL & ~E_NOTICE | ~E_STRICT
Si esto no funciona, busca la linea:
display_errors = On
Cambiala por:
display_errors = Off
(de esa forma ocultarás todos los mensajes de error y avisos que pueda lanzar el php)
Hasta pronto,
Salu2,
J. Raul (juagarc4)
Muchas gracias Juan Raul, tu solución me ha servido para el mismo problema que tenía con el calendario.
Un saludo!