Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Problemas al definir una matriz como atributo de una clase (http://www.forosdelweb.com/f68/problemas-definir-matriz-como-atributo-clase-277144/)

andreusup 06/03/2005 13:36

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?? :pensando:

jpinedo 06/03/2005 14:28

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:adios:

andreusup 06/03/2005 14:57

:arriba:

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

muchas gracias

johnnylee 21/12/2005 10:37

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?

jpinedo 22/12/2005 17:27

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.


La zona horaria es GMT -6. Ahora son las 07:52.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.