Retroceder   Foros del Web > Programación para sitios web > PHP > PHP orientado a objetos

Respuesta
 
Herramientas Desplegado
Antiguo 06-mar-2005, 12:36   #1 (permalink)
andreusup ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 34
Problemas al definir una matriz como atributo de una clase

Hola a tod@s!

os muestro el siguiente código ::

Código PHP:
class BDMySQL{
...
}

...

11 class usuBD extends BDMySQL{
12 
13     
// parámetros para consulta de tablas
14     var $vectorTabUsu = array();    
15    $this->vectorTabUsu[0] = "tusuarios";
16    $this->vectorTabUsu[1] = "nick";
17    $this->vectorTabUsu[2] = "pass";

...


Bien. Pues al ejecutar el programa obtengo un error en la línea 15. El error es:

Código PHP:
Parse errorparse errorexpecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in XXX on line 15 
he probado a entrecomillar los índices de la matriz (vectorTabUsu['0']), a cambiar ente comillas simples y/o compuestas en muchas combinaciones. Pero no he encontrado el error.

Alguna ayuda??

Última edición por andreusup; 06-mar-2005 a las 12:38.
andreusup está desconectado   Responder Citando
Antiguo 06-mar-2005, 13:28   #2 (permalink)
Moderador PHP
jpinedo ha deshabilitado el karma
 
Avatar de jpinedo
 
Fecha de Ingreso: septiembre-2003
Ubicación: Piura
Mensajes: 2.744
Lo que pasa es que no pueden haber operaciones dentro de una clase que no estén dentro de un método. En la línea 14 declaras un atributo ($vectorTabUsu), pero en la línea 15 (y las siguientes) realizas operaciones de asignación. Como te dije, las operaciones deben estar dentro de un método. También puedes inicializar los atributos al momento de declararlos (pero no después).

Como verás... tienes dos opciones:
- Declarar el atributo "var $vectorTabUsu = array();" y luego en el constructor hacer la inicialización.
Código PHP:
11 class usuBD extends BDMySQL{
12
13     
// parámetros para consulta de tablas
14     var $vectorTabUsu = array();  

      function 
usuBD(){
       
//...
       //...
       
$this->vectorTabUsu[0] = "tusuarios";
       
$this->vectorTabUsu[1] = "nick";
       
$this->vectorTabUsu[2] = "pass";
    } 
- O, hacer la inicialización junto a la declaración del atributo:
Código PHP:
14     var $vectorTabUsu = array("tusuarios","nick""pass"); 
Saludos
jpinedo está desconectado   Responder Citando
Antiguo 06-mar-2005, 13:57   #3 (permalink)
andreusup ha deshabilitado el karma
 
Fecha de Ingreso: enero-2005
Mensajes: 34


Vaya error de concepto!! si ya lo decía manquiña... el concepto es el concepto

muchas gracias
andreusup está desconectado   Responder Citando
Antiguo 21-dic-2005, 09:37   #4 (permalink)
johnnylee ha deshabilitado el karma
 
Avatar de johnnylee
 
Fecha de Ingreso: abril-2005
Mensajes: 13
Enviar un mensaje por ICQ a johnnylee Enviar un mensaje por MSN a johnnylee Enviar un mensaje por Yahoo  a johnnylee
una pregunta... parece ser que tambien tiene que ver la version de php que estes usando, puesto que con una misma clase, en php < 5, hay que usar var, sin embargo, despue de php5, te sale un notice o warning en nivel E_STRICT que sugiere deprecacion, hy hay que cambiar el var por un public.... estaré mal?
johnnylee está desconectado   Responder Citando
Antiguo 22-dic-2005, 16:27   #5 (permalink)
Moderador PHP
jpinedo ha deshabilitado el karma
 
Avatar de jpinedo
 
Fecha de Ingreso: septiembre-2003
Ubicación: Piura
Mensajes: 2.744
Bueno,
Un notice o Warning de este tipo no es algo para preocuparse. Si estas seguro de que tu aplicación estará corriendo en un server con PHP5, utiliza sintaxis propia (en este caso, public, private, etc.)

Pero si quieres tener la mayor compatibilidad posible, programa para PHP4, ya que la gran mayoría de servidores implementa esa versión.
jpinedo está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 23:23.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93