En un script, llamémosle script1.php, llamaba mediante jQuery a otro script, llamémosle script2.php, intentaba acceder a los datos de la variable $_SESSION. A pesar de establecer el session_start(), y ver mediante el Firebug que podía ver la información, no podía acceder por programación a los atributos de la clase con la que tenía que trabajar. El Firebug la definía de la siguiente manera:
__PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] ...
Obviamente sugiere que la clase no existe. La solución está en cargar un include o un require con la definición de la clase antes de session_start().
Mostrando entradas con la etiqueta oop. Mostrar todas las entradas
Mostrando entradas con la etiqueta oop. Mostrar todas las entradas
lunes, 3 de agosto de 2009
martes, 24 de febrero de 2009
Interfaces en PHP 5
La siguiente es la estructura de un interface común:
interface BeingDamage{
public function processDamage($weapon);
public function damageHealth($damage);
}
El interfaz se implementaría de la siguiente manera:
class character implements BeingDamage{
function processDamage($weapon){
//implementación
}
function damageHealth($damage){
//implementación
}
}
Es importante recordar que la reutilización de clases y métodos sugiere que conviene programar a interfaces, no a implementaciones.
interface BeingDamage{
public function processDamage($weapon);
public function damageHealth($damage);
}
El interfaz se implementaría de la siguiente manera:
class character implements BeingDamage{
function processDamage($weapon){
//implementación
}
function damageHealth($damage){
//implementación
}
}
Es importante recordar que la reutilización de clases y métodos sugiere que conviene programar a interfaces, no a implementaciones.
lunes, 9 de febrero de 2009
Clase y números aleatorios en PHP
Digamos que queremos crear una clase en php para un juego de rol y pretendemos que sus abilidades se generen automáticamente, pudiendo valer de 8 a 18.
class cBeing{
var $IdBeing;
var $Nombre;
var $Apellidos;
var $Str;
var $Con;
var $Int;
var $Wis;
var $Cha;
function cBeing(){
//Constructor por defecto de Being.
$this->Str=12;
$this->Con=12;
$this->Int=12;
$this->Wis=12;
$this->Cha=12;
}
function rollAbilities(){
//Función que genera valores aleatorios para las cuatro abilidades principales.
$this->Str=devuelveAleatorio18();
$this->Con=devuelveAleatorio18();
$this->Int=devuelveAleatorio18();
$this->Wis=devuelveAleatorio18();
$this->Cha=devuelveAleatorio18();
}
function devuelveAleatorio18(){
$random = mt_rand(8,18);
return $random;
}
}
class cBeing{
var $IdBeing;
var $Nombre;
var $Apellidos;
var $Str;
var $Con;
var $Int;
var $Wis;
var $Cha;
function cBeing(){
//Constructor por defecto de Being.
$this->Str=12;
$this->Con=12;
$this->Int=12;
$this->Wis=12;
$this->Cha=12;
}
function rollAbilities(){
//Función que genera valores aleatorios para las cuatro abilidades principales.
$this->Str=devuelveAleatorio18();
$this->Con=devuelveAleatorio18();
$this->Int=devuelveAleatorio18();
$this->Wis=devuelveAleatorio18();
$this->Cha=devuelveAleatorio18();
}
function devuelveAleatorio18(){
$random = mt_rand(8,18);
return $random;
}
}
Suscribirse a:
Entradas (Atom)