Preguntas sobre PHP.

Iniciado por . . ., 28 Enero 2010, 01:52 AM

0 Miembros y 1 Visitante están viendo este tema.

. . .

Desearia que alquien me ayude con algunas dudas:

1) Sobre __construct
Código (php) [Seleccionar]
<?
class Conexion
{
//Declaracion de variables
private $_CONEXION;

//metodo constructor
function __construct()
{
$conex = array('localhost','root','root','web');
$this->_CONEXION = mysql_connect($conex[0],$conex[1],$conex[2]);
mysql_select_db($conex[3],$this->_CONEXION);
}
}
?>


El constructor solo se ejecutara cuando instancie la clase conexion, que sucede si la clase conexion extiende a una clase personal (habra error porque el constructor no se ha ejecutado). ¿Como corregir esto?

2) Sobre active record

Lei por internet y me tope con esto:

Código (php) [Seleccionar]
$post = new Post();
$post->title = 'My first blog post!!';
$post->author_id = 5;
$post->save();


y tambien

Código (php) [Seleccionar]
$post = new Post();
$post->find(5);
echo $post->title;
echo $post->author_id = 5;


Entonces en active record usan la misma forma tanto para recuperar como para asignar un valor a un campo de una clase (que representa a la tabla). En .NET esto se podria hacer de la siguiente forma.

Código (vbnet) [Seleccionar]
   Public Property title() As String
       Get
               return _titulo
       End Get
       Set(ByVal value As Integer)
               _titulo = value
       End Set
   End Property


De esa forma se puede tanto asignar como recuperar un valor, sin embargo como se hace eso en PHP. Yo se que para recuperar se puede hacer de la siguiente forma:

Código (php) [Seleccionar]
public function title()
{
return $this->_title;
}


Sin embargo para asignar se tiene que enviar un valor

Código (php) [Seleccionar]
public function title($titulo)
{
$this->_title = $titulo;
}


La pregunta es: como hacer para que en php pueda asignar y recuperar un valor en un solo metodo (como se hace en .NET)

Gracias.

EDITO: Al parecer el uso de Setters y Getters aumenta la velocidad de la aplicacion. Source

Nakp

title es un solo metodo... polimorfico :P usa ambos y funcionaran ;)
Ojo por ojo, y el mundo acabará ciego.

. . .

La solucion a mi segundo problema es esta:

Código (php) [Seleccionar]
class Bar{

    private $name;
    private $age;

    public function __set($var, $val){
        $this->$var = $val;
    }

    public function __get($var){
        return $this->$var;
    }

}


Y asi se usa:

Código (php) [Seleccionar]
$bar = new Bar();
$bar->name = "Dougal";
$bar->age = 10;