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

Variables globales para una clase

Estas en el tema de Variables globales para una clase en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola, Tengo una consulta con respecto a las clases... ¿Cómo se pueden definir variables globales para una clase? Ejemplo: Código PHP: class  prueba  {      var  ...
  #1 (permalink)  
Antiguo 27/02/2008, 07:38
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Variables globales para una clase

Hola,


Tengo una consulta con respecto a las clases...

¿Cómo se pueden definir variables globales para una clase?

Ejemplo:

Código PHP:

class prueba {

     var 
$variable="hola";

     function 
prueba() {

        echo 
$this->variable;

     }


En principio esto funcionaría pero ¿es la forma para declarar variables que van a ser globales para toda la clase? ¿o hay algún otro modo?

Por otra parta, esto no sirve para declarar y dar valor a arrays, ¿cómo se haría en ese caso?

Saludos.
  #2 (permalink)  
Antiguo 27/02/2008, 09:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Variables globales para una clase

La forma que lo propones es la correcta para PHP4, para PHP5, las variables necesitan una visibilidad (publica, protegida, privada), y para declarar un arreglo es igual que cualquier variable:
Código PHP:
class Prueba {
       var 
$arreglo;
       function 
Prueba() {
             
$this->arreglo = array( "uno""dos""tres" );
       }

       function 
imprime() {
              foreach( 
$this->arreglo as $item ) {
                     echo 
$item;
              }
       }

Aunque de ser posible te recomendaría que te mudaras a PHP5 para aprovechar todas las funcionalidades que te da para POO.

Saludos.
  #3 (permalink)  
Antiguo 27/02/2008, 09:10
 
Fecha de Ingreso: diciembre-2007
Mensajes: 50
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Variables globales para una clase

Keysher, por lo que yo se, esa forma es correcta, y es la que yo uso.

Un saludo,
  #4 (permalink)  
Antiguo 27/02/2008, 12:37
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Variables globales para una clase

El caso es que lo que quiero no es sólo definirlas, sino darles valor. Algo así:


Código PHP:

class prueba 
 
     private 
$variable['loquesea']="hola"
 
     public function 
__construct() { 
 
        echo 
$this->variable['loquesea']; 
 
     } 
 

Es para tener unas cuantas variables que van a tener un valor definido al crear el objeto. Supongo que lo podría hacer con método que haga eso... pero era para evitarlo.
  #5 (permalink)  
Antiguo 27/02/2008, 13:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: Variables globales para una clase

Código PHP:
class prueba 
 
     private 
$variable = array( "loquesea" => "hola" );
 
     public function 
__construct() { 
 
        echo 
$this->variable['loquesea']; 
 
     } 
 

Saludos.
  #6 (permalink)  
Antiguo 27/02/2008, 14:05
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 21 años, 5 meses
Puntos: 17
Re: Variables globales para una clase

Ni se me había ocurrido utilizar ese modo para crear el array.... Creo que necesito dormir más.

Muchas gracias.
  #7 (permalink)  
Antiguo 17/03/2008, 14:38
 
Fecha de Ingreso: marzo-2008
Mensajes: 5
Antigüedad: 16 años, 1 mes
Puntos: 0
Re: Variables globales para una clase

Hombre yo creo que en el método construct es donde debes inicializar las vbles y hacer las conexiones necesarias para empezar a trabajar con la clase.

Yo haría algo así:

class prueba
{
private $variable;

public function __construct()
{

$this->variable=array( "loquesea" => "hola" );

}

}

Pero bueno supongo que es cuestión de gustos.
  #8 (permalink)  
Antiguo 18/03/2008, 07:25
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 19 años
Puntos: 32
Re: Variables globales para una clase

El problema es conceptual. Las variables "siempre son globales para toda la clase", ya que los atributos de un objeto son propios del objeto y el mismo puede usar sus... propios atributos (lo cual es lógico).

Por concepto general todos los atributos de una clase deben ser *siempre* privados y mediante métodos "get / set" (públicos / privados) permitir modificar ó ver, o modificar y ver, de acuerdo a las necesidades de la clase.

Por consiguiente y usando sintaxis PHP actualizada, siempre deberías crear atributos privados

Código PHP:
class Persona{
   private 
$nombre "Enrique Place";
  
   public  function 
getNombre(){
      return 
$this->nombre;
   
   }
}

$yo = new Persona();

echo 
$yo->getNombre(); // retorna "Enrique Place"

echo $yo->nombre// error, no anda

$yo->nombre "pepe"// error, no anda 
En este ejemplo solo puedes obtener el nombre pero no modificarlo.

PD: buscar en Google "setter getter PHP"
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
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 07:10.