Las Clases son máximo exponente de la Programación Orientada a Objetos (POO). PHP no es un lenguaje orientad a objeto, pero implementa las características que permiten definir las clases.

Pero, ¿qué son las Clases y para que sirven?, empecemos por los segundo, sirven hacer el código más legible, y lo que es más importante, reutilizable. Escribir una Clase es sin duda más largo que escribir el código directamente, pero a la larga es más rentable por su portabilidad a otras aplicaciones y su mantenimiento.

Las Clases no son más que una serie de variables y funciones que describen y actúan sobre algo. Por ejemplo, vamos a crear la clase automóvil, la cual tendrá diversas variables, $color, $modelo, $marca, $potencia, $matricula y habrá una serie de funciones que actuarán sobre la clase automóvil como Precio(), Acelerar(), Frenar(), Girar()y Reparar().

Como ejemplo vamos a crear la clase mysql, que nos servirá para realizar consultas a las bases de datos MySQL.

<?php

class DB_mysql {

/* variables de conexión */

var $BaseDatos;

var $Servidor;

var $Usuario;

var $Clave;

/* identificador de conexión y consulta */

var $Conexion_ID = 0;

var $Consulta_ID = 0;

/* número de error y texto error */

var $Errno = 0;

var $Error = “”;

/* Método Constructor: Cada vez que creemos una variable

de esta clase, se ejecutará esta función */

function DB_mysql($bd = “”, $host = “localhost”, $user = “nobody”, $pass = “”) {

$this->BaseDatos = $bd;

$this->Servidor = $host;

$this->Usuario = $user;

$this->Clave = $pass;

}

/*Conexión a la base de datos*/

function conectar($bd, $host, $user, $pass){

if ($bd != “”) $this->BaseDatos = $bd;

if ($host != “”) $this->Servidor = $host;

if ($user != “”) $this->Usuario = $user;

if ($pass != “”) $this->Clave = $pass;

// Conectamos al servidor

$this->Conexion_ID = mysql_connect($this->Servidor, $this->Usuario, $this->Clave);

if (!$this->Conexion_ID) {

$this->Error = “Ha fallado la conexión.”;

return 0;

}

//seleccionamos la base de datos

if (!@mysql_select_db($this->BaseDatos, $this->Conexion_ID)) {

$this->Error = “Imposible abrir “.$this->BaseDatos ;

return 0;

}

/* Si hemos tenido éxito conectando devuelve

el identificador de la conexión, sino devuelve 0 */

return $this->Conexion_ID;

}

/* Ejecuta un consulta */

function consulta($sql = “”){

if ($sql == “”) {

$this->Error = “No ha especificado una consulta SQL”;

return 0;

}

//ejecutamos la consulta

$this->Consulta_ID = @mysql_query($sql, $this->Conexion_ID);

if (!$this->Consulta_ID) {

$this->Errno = mysql_errno();

$this->Error = mysql_error();

}

/* Si hemos tenido éxito en la consulta devuelve

el identificador de la conexión, sino devuelve 0 */

return $this->Consulta_ID;

}

/* Devuelve el número de campos de una consulta */

function numcampos() {

return mysql_num_fields($this->Consulta_ID);

}

/* Devuelve el número de registros de una consulta */

function numregistros(){

return mysql_num_rows($this->Consulta_ID);

}

/* Devuelve el nombre de un campo de una consulta */

function nombrecampo($numcampo) {

return mysql_field_name($this->Consulta_ID, $numcampo);

}

/* Muestra los datos de una consulta */

function verconsulta() {

echo “<table border=1>\n”;

// mostramos los nombres de los campos

for ($i = 0; $i < $this->numcampos(); $i++){

echo “<td><b>”.$this->nombrecampo($i).”</b></td>\n”;

}

echo “</tr>\n”;

// mostrarmos los registros

while ($row = mysql_fetch_row($this->Consulta_ID)) {

echo “<tr> \n”;

for ($i = 0; $i < $this->numcampos(); $i++){

echo “<td>”.$row[$i].”</td>\n”;

}

echo “</tr>\n”;

}

}

} //fin de la Clse DB_mysql

?>

Como habreis observado, para crear una clase utilizamos la sentencia class, y además hemos creado una función con el mismo nombre que la clase, a esa función se le llama constructor y se ejecutará cada vez que definamos una variable de esa clase. No es obligatorio crear un constructor en una definición de clase.

Otra cosa importante en las clases es el operador ->, con el que indicamos una variable o método (parte derecha del operador) de una clase (parte izquierda del operador). Para hacer referencia a la clase que estamos creando dentro de su definición, debemos utilizar this.

Y ahora veamos un ejemplo de la clase que hemos creado, y supongamos que el código anterior lo hemos guardado en un fichero llamado clase_mysql.inc.php.

<body>

<html>

<?php

require (“clase_mysql.inc.php”);

$miconexion = new DB_mysql ;

$miconexion->conectar(“mydb”, “localhost”, “nobody”, “”);

$miconexion->consulta(“SELECT * FROM agenda”);

$miconexion->verconsulta();

?>

</body>

</html>

La Mayoria de los móviles inteligentes en España Symbian En España, muchos consumidores se decantan por un smartphone, en lugar de un teléfono móvil avanzado. Ya suponen el 39,2 por ciento de los usuarios de...
Google Chrome esta de cumpleaños Hace exactamente cuatro años atrás, Google puso a disposición la primera versión pública del navegador web Chrome, abriendo su código fuente desde el ...
Planificación de un sitio web El trabajo de construcción de una web exige una planificación exhaustiva (o una planificación básica y un buen programa para manejar todo el sitio), c...
Validar Numero de tarjeta de credito Expresiones regulares en php Al realizar una aplicación de comercio electrónico es muy importante validar los distintos tipos de tarjetas de credito que hay, esta es una simple ...
Consultas Aleatorias con PHP y Mysql Para seleccionar datos aleatoriamente tenemos que tener en cuenta la normalización de SQL y que posiblemente no todas apliquen a algunos gestores de b...
mysqli connect error mysqli_connect_error — Regresa una descripción del último error de la conexión Descripción cadena mysqli_connect_error ( void ) La función m...
mysqli get client version (PHP 5) mysqli_get_client_version — Obtiene información del cliente MySQL Descripción int mysqli_get_client_version ( void ) Regresa el nú...
Ranking Sistemas Operativos Agosto 2011 Ranking Sistemas Operativos de escritorio Agosto 2011 Windows: 92.90% Mac: 6.03% Linux: 1.07% Ranking S.O. escritorio por versiones 1. W...
El departamento de Defensa de EE.UU. aprueba el uso de Android El departamento de Defensa de los Estados Unidos tan sólo permitía a los militares, hasta ahora, utilizar dispositivos con sistema operativo BlackBerr...
Que es LinkedIn y que hace Obama en alli LinkedIn es un sitio web orientado a negocios, fue fundado en diciembre de 2002 y lanzado en mayo de 2003 (comparable a un servicio de red social), pr...