Foros del Web » Programando para Internet » PHP »

¿cómo imprimir una propiedad en la que el NOMBRE incluye al final NOMBRE() ?

Estas en el tema de ¿cómo imprimir una propiedad en la que el NOMBRE incluye al final NOMBRE() ? en el foro de PHP en Foros del Web. Hola. Imprimir la propiedad P es sencillo: Código PHP: echo  $OBJETO -> P  pero cuando la propiedad (por el motivo que séa), se llama P() ...
  #1 (permalink)  
Antiguo 05/09/2014, 09:00
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 1 mes
Puntos: 22
¿cómo imprimir una propiedad en la que el NOMBRE incluye al final NOMBRE() ?

Hola.

Imprimir la propiedad P es sencillo:
Código PHP:
echo $OBJETO->
pero cuando la propiedad (por el motivo que séa), se llama P(), al intentar imprimirla con la línea anterior, PHP responde[CODE]Fatal error: Call to undefined method stdClass::P()[/P].

Sin embargo, la propiedad sí existe:
Código PHP:
print_r($OBJETO
[CODE]stdClass Object
(
[P()] => muy_alto
)[CODE]Sé que lo puedo "PASAR" o convertir en un ARRAY, y desde allí imprimirlo accediendo al índice, pero...

Si se hace posible imprimir DIRECTAMENTE
Código PHP:
echo $OBJETO->
conocen ustedes cómo puede imprimirse DIRECTAMENTE una propiedad si el nombre de ésta termina en paréntessis ?

Gracias!
  #2 (permalink)  
Antiguo 05/09/2014, 09:21
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 2 meses
Puntos: 288
Respuesta: ¿cómo imprimir una propiedad en la que el NOMBRE incluye al final NOMBRE()

si termina en parentesis se supone que es un metodo no una propiedad.

podrias leer el manual http://php.net/manual/es/language.oop5.properties.php
  #3 (permalink)  
Antiguo 05/09/2014, 10:01
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 1 mes
Puntos: 260
Sonrisa Respuesta: ¿cómo imprimir una propiedad en la que el NOMBRE incluye al final NOMBRE()

Hola,

Cita:
Iniciado por Patriarka Ver Mensaje
si termina en parentesis se supone que es un metodo no una propiedad.
...
Cita:
Iniciado por Anarko Ver Mensaje
... pero cuando la propiedad (por el motivo que séa), se llama P(),
Por más extraño que parezca, existe la posibilidad de que la propiedad tenga un nombre con paréntesis al final. Por supuesto, como indica Patriarka, sería adecuado evitar propiedades que tengan caracteres con un significado diferente en el propio lenguaje, sino se presta a confusiones como esta.

Aún así, podrías probar así:

Código PHP:
echo $OBJETO->{"P()"}; 
Saludos,
  #4 (permalink)  
Antiguo 05/09/2014, 10:01
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 1 mes
Puntos: 22
Respuesta: ¿cómo imprimir una propiedad en la que el NOMBRE incluye al final NOMBRE()

Cita:
Iniciado por Patriarka Ver Mensaje
si termina en parentesis se supone que es un metodo no una propiedad.
Gracias Patriarka, como menciono en el MSJ previo, lo que sucede es que SI EXISTE la propiedad:
Código PHP:
print_r($OBJETO
Código:
stdClass Object
(
[P()] => muy_alto
)
Sé que lo puedo "PASAR" o convertir el objeto en un ARRAY, y desde allí imprimirlo accediendo al índice, pero...

Les pregunto si es posible imprimir ésa propiedad ?
  #5 (permalink)  
Antiguo 05/09/2014, 10:06
 
Fecha de Ingreso: febrero-2004
Mensajes: 1.987
Antigüedad: 20 años, 1 mes
Puntos: 22
Respuesta: ¿cómo imprimir una propiedad en la que el NOMBRE incluye al final NOMBRE()

Cita:
Iniciado por HackmanC Ver Mensaje
podrías probar así:

Código PHP:
echo $OBJETO->{"P()"}; 
EXCELENTE !!!
Entonces sí que puede hacerse! :)
Es lo que buscaba, muchas gracias.

Etiquetas: final, nombre, propiedad
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 20:00.