eso es cierto
XD
eso es cierto
XD
Las conexiones no se cierran al ejecutar la primera consulta, de lo contrario las conexiones a las bases de datos la saturarianya que muchos scripts en php hacen muchas consultas a bases de datos, la conexion solo se cierra cuando se ejecuta el comando mysql_close($conexion); o despues de determinado tiempo, si no se cierran las conexiones despues de ejecutar la consulta esta queda abierta determinado tiempo establecido en la configuracion, no tiene nada que ver con el sistema operativo, mas que nada tiene que ver con la configuracion del servidor de bases de datos, Unix o Ubuntu, Unix es un sistema operativo de los mas seguros del mercado, claro de paga, Ubuntu, Fedora, kannopix, Redhat, Mandrivia, Kubuntu, Suse, Opensuse, etc, todos esos son distribucciones de linux gratuitas, asi que si realmente KenLego Ubuntu es linux.
vaya me han aclarado muchas cosas xD, yo lo de la conexion lo lei no se si en la pagina de phpya o en programacionweb pero se que lo habia leido, pero gracias por aclararme eso :D
;) xD buena explicacion severdns
PHP Orientado a Objetos (POO)
Bueno, continuemos las clases no?
En este capitulo enseñare algo sobre poo, es decir, Programacion Orientada a Objetos.
Esto se trata de Clases, dentro de las cuales hay funciones y variables, hagamos el tipico ejemplo "hola mundo" que esta en todos los tutoriales: xD
El resultado seria:<?php
Class HolaMundo {
private $unavariable;
public function mostrar()
{
$this->unavariable = "Hola Mundo";
echo $this->unavariable;
}
}
// Luego, para ejecutar el codigo:
$holamundo = new HolaMundo();
$holamundo->mostrar();
?>
Para iniciar una clase, se escribe Class, seguido del nombre de la clase. Luego, para devinir una variable dentro de esta clase se escribe private $unavariable.Hola Mundo
Luego, para acceder a una variable, se debe utilizar el objeto $this->, es decir $this->unavariable.
Finalmente en la funcion mostrar() le damos un valor a la variable y la imprimimos.
es importante que una funcion la hagamos publica, anteponiendo la palabra "public", en la proxima leccion explicare por que![]()
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:
Como ven hay dos objetos, una variable que es privada y una funcion que es publica.<?php
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
Nos daria error, ya que como la variable es privada, no la podemos modificar desde afuera. Se entiende?$holamundo = new HolaMundo();
// Y aqui pusieramos
$holamundo->unavariable = "hola";
Por eso, si la funcion es publica, la podemos usar desde fuera de la clase, mediante el operador ->:
Ahora, hagamos algo con dos funciones, una privada y una publica y ademas, con una variable:$holamundo->mostrar();
Como ven arriba, una funcion es privada, si la llamamos asi: $holamundo->definirtexto();<?php
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:
Aqui si usamos esta funcion, porque la estamos usando dentro de la clase.$this->definirtexto();
-------
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? */
?>
Hola kenlogo,
cuanto tiempo?
pues lo que no entiendo es para que sirve todo esto, tienen algun uso en especial, o se usa para algun tipo de script?
nosaber
Si pues, de hecho, quienes mas lo utilizan son los sistemas de foros, por ejemplo phpBB usa programacion orientada a objetos, al igual que vBulletin, porque asi es mas simple, se declara todo en una sola clase y luego lo unico que debes hacer es llamar a la funcion que quieras.
PHP Orientado a Objetos (POO) - Metodo Constructor
Recuerdan que cuando llamabamos a una clase, por ejemplo: $mundo = new HolaMundo() ? Ven que no le ponemos parametros a esa clase entre los parentesis?
Ahora, vamos a aprender a hacerlo, con el metodo __construct
Que es lo nuevo en esta clase?Class BaseDatos {
private $dbhost;
private $dbuser;
private $dbpass;
private $db;
public function __construct($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);
}
}
La linea:
Asi se definen los parametros para una clase, primero de todo, la funcion tiene que ser publica, segundo, debe llamarse __construct (dos guiones bajos) y tercero, debe declararse antes que cualquier otra funcion, es decir, debe ser la primera funcion de la clase, haciendolo de este modo, la usariamos asi:public function __construct($server,$usuario,$passwd,$base)
E inmediatamente estariamos conectados a nuestra base de datos.$BD = new BaseDatos('localhost','root','','desarrollos');
Hola! bueno xD me llego un comentario de un usuario sobre las lecciones php, xD y me dijo que no entendió NADA! XD entonces les intentare explicar un poco mas paso a paso primero que nada
POO sigifica Programación Orientada a Objetos, este es un tipo diferente al que habiamos visto que era ESTRUCTURADO, es decir solo se hacia la estructura del programa, la mayoria de los lenguajes usan POO por lo que es bueno acostumbrarse...
ahora como su nombre lo dice POO define objetos y les da parámetros o propiedades es decir creo un objeto:
ahi creamos una bonita cajita =D ahora vamos a definirla las definiciones se hacen con function ya sea publica (public) o privada (private) como ya lo explico kenichiCódigo:Class Caja{ }
ahora definamosla
expliquemos paso a pasoCódigo:Class Caja{ public function Parametros(){ $this->ancho = "la caja mide 150 cm de ancho"; $this->alto = "la caja mide 150 cm de alto"; //mostramos las dos variables echo $this>ancho; echo $this>alto; } } $caja = new Caja(); $caja->parametros;
Class Caja() nos crea un objeto llamado caja
public function Parametros crea una propiedad a la caja en este caso ancho y alto
$this-> nos ayuda a definir las variables entonces definimos el ancho y el alto
y luego los mostramos con echo $this->variable
ahora OJO las clases NUNCA SE EJECUTAN SOLAS es decir si yo pongo:
Class Caja{
public function Parametros(){
$this->ancho = "la caja mide 150 cm de ancho";
$this->alto = "la caja mide 150 cm de alto";
//mostramos las dos variables
echo $this>ancho;
echo $this>alto;
}
}
no pasara nada!! porque? porque para eso sirven las clases son como includes xD las clases deben ser llamadas, y como se llama a una clase?
con una variable + new + clase
osea
$caja = new Caja(); caja llama al objeto Caja
cuando hacemos esto $caja ya es igual que el objeto Caja es decir se fusiono o se transformo en el objeto
ahora nomas falta llamar a las funciones o los parametros que tenga el objeto en este caso se llaman "parametros"
y nos quedará asi:
$caja = new Caja();
$caja->parametros;
que hace esto ultimo? pues llama a public function Parametros() y hace las funciones que tiene dentro osea primero define las variables alto ancho y despues las muestra esto tal vez te parezca inutil y estupido pero jaja xD perdon la expresion, pero enrealidad es muy util una vez que sabes utilizar, si no entiendes nada es normal, ami tambien me paso, fue mi punto debil el POO pero una vez que estudias ochomil lenguajes distintos pues algo se te queda xD es cosa de practicar y practicar hasta que te acostumbres a ver codigos raros y aprendas a estudiarlos saludos ;)
jaja XD elgg... XD
Jajaja bueno elgg... es demasiado crea randoms hasta para mostrar un dato
xD da muchos problemas
Hola,
aaaaaaa
pero sigo sin entender para que sirve,
poner algun ejemplo, de algun script en que se tenga que usar eso.
nosaber
Hola,Iniciado por kaotick
si no quitas el fclose($ar);
no funciona...probado cientificamente!
y aho mas cosas jaja
Link, se pueden activar las cookies localmente???
nosaber
Eso es porque linkgl se confundio con los nombres de las variables, al principio puso: $fp = fopen()... pero despues puse fclose($ar)
Es bastante obvio el error cierto?
Marcadores