Programacion Orientada a Objetos (POO) - Objetos publicos y privados
Aqui, explicare un poco que significa "public" y "private" en php, en la leccion anterior teniamos esto:
private significa que a este objeto, solo se lo puede modificar o leer dentro de una clase, es decir, si nosotros pusieramos
Por eso, si la funcion es publica, la podemos usar desde fuera de la clase, mediante el operador ->:
nos dara error, debido a la razon que explique previamente.
Como vemos, hay una linea:
-------
Hasta aca parece que se escribe mucho para solo mostrar algo simple, entonces, les voy a mostrar un ejemplo practico. Esto lo usan la mayoria de los sistemas de foros como phpBB:
Aqui, explicare un poco que significa "public" y "private" en php, en la leccion anterior teniamos esto:
<?phpComo ven hay dos objetos, una variable que es privada y una funcion que es publica.
Class HolaMundo {
private $unavariable;
public function mostrar()
{
$this->unavariable = "Hola Mundo";
echo $this->unavariable;
}
}
// Luego, para ejecutar el codigo:
$holamundo = new HolaMundo();
$holamundo->mostrar();
?>
private significa que a este objeto, solo se lo puede modificar o leer dentro de una clase, es decir, si nosotros pusieramos
$holamundo = new HolaMundo();Nos daria error, ya que como la variable es privada, no la podemos modificar desde afuera. Se entiende?
// Y aqui pusieramos
$holamundo->unavariable = "hola";
Por eso, si la funcion es publica, la podemos usar desde fuera de la clase, mediante el operador ->:
$holamundo->mostrar();Ahora, hagamos algo con dos funciones, una privada y una publica y ademas, con una variable:
<?phpComo ven arriba, una funcion es privada, si la llamamos asi: $holamundo->definirtexto();
Class HolaMundo {
private $texto;
private function definirtexto()
{
$this->texto = "Estas aprendiendo POO en PHP";
}
public function imprimir()
{
$this->definirtexto();
echo $this->texto;
}
}
// Y ahora usamos la clase y su funcion imprimir()
$holamundo = new HolaMundo();
$holamundo->imprimir();
?>
nos dara error, debido a la razon que explique previamente.
Como vemos, hay una linea:
$this->definirtexto();Aqui si usamos esta funcion, porque la estamos usando dentro de la clase.
-------
Hasta aca parece que se escribe mucho para solo mostrar algo simple, entonces, les voy a mostrar un ejemplo practico. Esto lo usan la mayoria de los sistemas de foros como phpBB:
Class BaseDatos {
private $dbhost;
private $dbuser;
private $dbpass;
private $db;
public function iniciar($server, $usuario, $passwd, $base)
{
$this->dbhost = $server;
$this->dbuser = $usuario;
$this->dbpass = $passwd;
$this->db = $base;
mysql_connect($this->dbhost, $this->dbuser, $this->dbpass);
mysql_select_db($this->db);
}
}
/* Y aca, se vuelve mucho mas simple al querer conectarse a una base de datos: */
$BD = new BaseDatos();
$BD->iniciar('localhost','root','','desarrollos');
/* Ahi arriba, nos conectamos a nuestro servidor, ves que facil se vuelve? */
?>