Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

variables globales dentro de clase

Estas en el tema de variables globales dentro de clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, como puedo referenciar a $PHP_SELF dentro de una clase? Si intento acceder a ella, me dice que no está definida. Gracias y salu2...
  #1 (permalink)  
Antiguo 07/03/2005, 12:00
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 23 años
Puntos: 0
variables globales dentro de clase

Hola, como puedo referenciar a $PHP_SELF dentro de una clase? Si intento acceder a ella, me dice que no está definida. Gracias y salu2
  #2 (permalink)  
Antiguo 07/03/2005, 14:55
Avatar de hunab  
Fecha de Ingreso: febrero-2005
Ubicación: Barcelona
Mensajes: 133
Antigüedad: 19 años, 10 meses
Puntos: 1
utiliza el array global $_SERVER['PHP_SELF'];
__________________
Marcio Barrios
marciobarrios.com // artículos sobre estándares y desarrollo web
  #3 (permalink)  
Antiguo 07/03/2005, 16:38
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 23 años
Puntos: 0
No funciona, sigue dando el mismo error
  #4 (permalink)  
Antiguo 07/03/2005, 17:23
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 9 meses
Puntos: 0
para usar variables globales tienes que poner en el php.ini :

register_globals = on

con algo como esto deberia jalar:

$valor=(isset($GLOBALS['PHP_SELF']) ? $GLOBALS['PHP_SELF'] : $_SERVER['PHP_SELF']);

los dos arrays se utilizan, aunque no se en que versiones de php
  #5 (permalink)  
Antiguo 08/03/2005, 01:58
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 23 años
Puntos: 0
La cosa es que puedo usar $PHP_SELF justo antes de definir la clase (incluso en el mismo fichero) pero no dentro de la clase, así que supongo que register_globals estará a on
  #6 (permalink)  
Antiguo 08/03/2005, 05:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años
Puntos: 129
Si usas el array superglobal $_SERVER para acceder PHP_SELF o cualquier otra variable .. Dicha variable tiene ambito en todo el script (incluido funciones y objetos) ..

Si dices estar diseñando una classe .. lo ideal es que pongas el código que usas y donde pretendes usar $_SERVER .. (que es lo que deberías usar .. directamente .. o creando un método para pasar dicho valor a tu objeto).

Un saludo,
  #7 (permalink)  
Antiguo 08/03/2005, 16:44
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 3 meses
Puntos: 41
aviana... La variable $PHP_SELF no es autoglobal... en cambio desde el array $_SERVER['PHP_SELF'] sí lo es.

Segundo.... mientras puedas mantener la directiva register globals en OFF... hazlo! (hay mucha información sobre eso en el manual oficial y varias discusiones en este foro).

Tercero... si no puedes utilizar el array superglobal $_SERVER (y te da un error de no definido) es posible que estés utilizando una versión de PHP menor a la 4.1. Si este es el caso actualiza tu PHP.

Saludos
  #8 (permalink)  
Antiguo 09/03/2005, 01:54
 
Fecha de Ingreso: enero-2002
Ubicación: Graná
Mensajes: 646
Antigüedad: 23 años
Puntos: 0
usando $GLOBALS si va. Entonces si pongo register globals a off, supongo que no podré usar $PHP_SELF :(
  #9 (permalink)  
Antiguo 09/03/2005, 07:35
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años
Puntos: 129
Si usas los arrays superglobales .. a partir de PHP 4.1.x da igual si usas register_globals a ON o a OFF .. siendo más seguro si lo usas a OFF tu aplicación .. Pero que va a funcionar .. funcionará en ambas configuraciones de PHP.

Un saludo,
  #10 (permalink)  
Antiguo 09/03/2005, 13:20
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 21 años, 3 meses
Puntos: 41
Créate un método para hacer pruebas que tenga algo así:
Código PHP:
function pruebaGlobal(){
   die(
$_SERVER['PHP_SELF']);

Si llamas a ese método debería funcionar sea cual sea el estado de register globals (ON u OFF). Y como ya te dijimos, es mejor utilizarlo en OFF.

Saludos
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 02:53.