Comunidad de diseño web y desarrollo en internet online

Problemas PHP + Apache + Clases

Citar            
MensajeEscrito el 22 Ene 2007 04:07 pm
Resulta que he hecho una pequeña clase, en realidad esta empezando a modelarla para mi tarea es una cosa sencilla, el punto es que hice lo siguiente para probar:

Código :

class crypto {

   function encriptar($parametro) {
      $this -> $mensaje = $parametro;
      echo $this->$mensaje;
   }
}

$mimsg = new crypto();
$xxx="Carlos";
$mimsg -> encriptar($xxx);


El problema es que cuando la corro el servidor local, me manda este error:

Código :

atal error: Cannot access empty property in C:\AppServ\www\crypto2.php on line 13


Pensando en que fuera el XAMPP, instalé el AppServ y sigo en las mismas, lo curioso es que solo falla en la clase, cualquier otra cosa funciona correctamente incluso los querys a la BD.

¿Alguna idea?

Por DaHouseCat

Claber

1011 de clabLevel

2 tutoriales

Genero:Masculino  

Smarphones Fan Boy

firefox
Citar            
MensajeEscrito el 22 Ene 2007 04:21 pm
Hola,

prueba a quitarle el símbolo $ a mensaje:

Código :

   function encriptar($parametro) {

      $this -> mensaje = $parametro;

      echo $this->mensaje;

   }

}


Y supongo que tendrás declarado mensaje por algún lado de la clase, no?

Saludos!

Por dmvalverde

150 de clabLevel



Genero:Masculino  

Extremadura

firefox
Citar            
MensajeEscrito el 22 Ene 2007 04:45 pm
Prueba esto

Código :

class crypto {
     var mensaje;

   function encriptar($parametro) {
      $this -> mensaje = $parametro;
      echo $this->mensaje;
   }
}

$mimsg = new crypto();
$xxx="Carlos";
$mimsg -> encriptar($xxx);
Lo hice al vuelo así que no se seguro pero espero te sirva

Por Yranac

421 de clabLevel



Genero:Masculino  

Lugo, Galicia

firefox
Citar            
MensajeEscrito el 22 Ene 2007 05:15 pm
Aunque ambas formas funcionan termine haciendo esto:

Código :

class crypto {
var $mensaje;
function encriptar($parametro) {
$mensaje = $parametro;
echo $mensaje;
}
}


Gracias chicos por su pronta respuesta.

Por DaHouseCat

Claber

1011 de clabLevel

2 tutoriales

Genero:Masculino  

Smarphones Fan Boy

firefox
Citar            
MensajeEscrito el 22 Ene 2007 10:28 pm

DaHouseCat escribió:

Aunque ambas formas funcionan termine haciendo esto:

Código :

class crypto {
var $mensaje;
function encriptar($parametro) {
$mensaje = $parametro;
echo $mensaje;
}
}


Gracias chicos por su pronta respuesta.


estas usando una variable local no la propiedad mensaje, para acceder a la propiedad debes usar $this

Ejemplo

Código :

<?php

class MiClase
{
   var $propiedad;
   
   function unMetodo( $param)
   {
      $propiedad   = $param;
   }
   
   function otroMetodo( $param)
   {
      $this->propiedad   = $param;
   }
   
   function muestra()
   {
      echo $this->propiedad;
   }
}

$obj = new MiClase();
$obj->unMetodo("Hola");
$obj->muestra();
$obj->otroMetodo("Hola Mundo");
$obj->muestra(); // salida: Hola Mundo

?>

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.