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

Problemas con la sesión y objetos desconocidos al trabajar con AJAX en PHP

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().

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.

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;
}

}