Foros del Web » Programando para Internet » PHP »

[solucionado] problema con array y constantes (bug)

Estas en el tema de [solucionado] problema con array y constantes (bug) en el foro de PHP en Foros del Web. hola, tengo un array asociativo global que usa constantes como valores. Usandolo desde el contexto global no tengo problemas, pero desde dentro de una función ...
  #1 (permalink)  
Antiguo 04/05/2003, 09:55
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 1 mes
Puntos: 0
[solucionado] problema con array y constantes (bug)

hola,

tengo un array asociativo global que usa constantes como valores. Usandolo desde el contexto global no tengo problemas, pero desde dentro de una función al array es null (leak de memoria?). Creo que es un bug, he encontrado un bug parecido aunque no es lo mismo en bug 18108, que ya está solucionado...

usando un codigo que no es el mismo pero funciona de manera idéntica no tengo problemas, supongo que porque el array en su caso no usa constantes ni como claves ni como valores, sino solamente cadenas...

el codigo mas o menos

Código PHP:
// los valores aca son constantes: PACKAGE.. etc;
// estas constantes son URLs de archivos que quiero
// incluir dentro del script
$arr_constMapping = array(
        
'CONSULTA' => PACKAGE_DB_SELECT,
                                
'INSERCION' => PACKAGE_DB_INSERT,
                                
'ALTERACION' => PACKAGE_DB_ALTER,
                                
'ACTUALIZACION' => PACKAGE_DB_UPDATE,
                                
'INDICES' => PACKAGE_DB_INDEX,
                                ); 
    
    
// debug
    
ECHO 'init GLOBAL =>' gettype($arr_constMapping) . '<hr>';
    
    function 
CLASS_setPackageDB($subPackage) {
        
    global 
$arr_constMapping
//debug
ECHO 'init FUNC =>' gettype($arr_constMapping) . '<hr>';
        
            if (!
is_null($subPackage 
&& 
is_string($subPackage 
&& 
array_key_exists($subPackage$GLOBALS['arr_constMapping'] ) ) {
        
                return 
require_once 
$_SERVER['DOCUMENT_ROOT'
WEBROOT_URL 
$arr_constMapping[$subPackage];
        
            } else {
        
                return 
false;
        
            }
        
    } 
llamando a la función de esta forma: CLASS_setPackageDB('CONSULTA'); da false...

no explico mucho para no ponerme pesado pero no hay problemas con el argumento de require_once, los paths para incluir archivos están bien, solamente que los echos para 'debug' me dan, primero, desde contexto global, 'array', pero el echo dentro de la función me da 'null'.

calculo que es un bug que probablemente esté solucionado, todavía no pude mucho buscar bugs ya lo veré

saludos y gracias por cualquier ayuda
__________________
webdeveloper
http://www.javascripters.com.ar/
diseño web y tecnología

Última edición por sci-fi; 04/05/2003 a las 13:08
  #2 (permalink)  
Antiguo 04/05/2003, 13:07
Avatar de sci-fi  
Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 1 mes
Puntos: 0
[solucionado]

lo testeé en el server remoto y no me da error. me daba error en mi server local de prueba con win32 que tiene una versión más vieja de php (4.0.x), así que parece que era un bug de php de esta versión en win32, no estoy seguro de si en *nix también, aunque en el primer mensaje el enlace hacia ese bug se trataba probablemente del mismo problema.
__________________
webdeveloper
http://www.javascripters.com.ar/
diseño web y tecnología
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:29.