Este blog tiene como meta servir de ayuda y facilitar a los usuarios información del Lenguaje De Programación PHP
Bienvenidos
jueves, 9 de octubre de 2014
Conceptos de Programación Orientada a Objetos
La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de los años 1990. En la
actualidad, existe una gran variedad de lenguajes de programación que
soportan la orientación a objetos.
Ejercicios con orientación a objetos PHP, AÑADIENDO PROPIEDADES
Añadiendo propiedades
Una propiedad no es más que una variable, y la usaremos para guardar información sobre el objeto en sí. Veamos cómo añadir nuestras propiedades.
1
2
3
4
| class Usuario { public $usuario ; public $password ; } |
public
. Por ahora quédate con que la propiedad es pública lo cual quiere decir que cualquiera puede acceder a ella. Después de public, tenemos el nombre de la propiedad.Veamos cómo escribir y leer estas propiedades.
1
2
3
4
5
6
7
8
9
10
| class Usuario { public $usuario ; public $password ; } $juan = new Usuario; $juan ->usuario = 'juan' ; $juan ->password = '01juan01' ; echo $juan ->usuario; // juan |
$juan->[nombre_propiedad]
. Quizá te estés preguntando… ¿por qué no puedo hacer algo así? Usuario->usuario
.
La respuesta es, que puede haber un número indeterminado de usuarios y,
el valor 01juan01 está dentro del objeto, no de la clase.
Ejercicios con orientación a objetos PHP, AÑADIENDO METODOS
Añadiendo métodos
Añadir métodos es tan sencillo como añadir propiedades. Vamos a añadir un método para saludar.
1
2
3
4
5
6
7
8
| class Usuario { public $usuario ; public $password ; public function saludar() { echo '¡Hola ' . $this ->usuario. '!' ; } } |
$this
? $this
es la forma que tienen los objetos de referirse a sí mismos. Por ende, para poder acceder al valor de $usuario
desde el propio objeto, tendremos que valernos de $this
.Llamar al método no tiene mucho misterio:
1
2
3
| $juan = new Usuario; $juan ->usuario= 'juan' ; $juan ->saludar(); // ¡Hola juan! |
1
2
3
4
5
6
7
8
9
10
11
12
| $usuarios = null; $usuarios [] = new Usuario; $usuarios [] = new Usuario; $usuarios [0]->usuario = 'juan' ; $usuarios [1]->usuario = 'manolo' ; foreach ( $usuarios as $usuario ) { $usuario ->saludar(); } // '¡Hola juan!' // '¡Hola manolo!' |
Ejercicios con orientación a objetos PHP, de CONSTRUCTORES Y DESTRUCTORES
Constructores y destructores
Cuando una clase se crea o se destruye, se llama a unos métodos mágicos como ya hemos adelantado. Si queremos realizar alguna acción en cualquiera de los dos eventos, tendremos que definir esos métodos e implementar su funcionalidad.El método
__construct()
se llama cuando creamos una
clase y suele ser un buen punto para rellenar información por defecto, o
formar un objeto con algo que venga de la base de datos, etc.
1
2
3
4
5
6
7
8
9
10
11
| class Usuario { public $usuario ; public $password ; public function __construct() { $this ->password = '1234' ; //Seguridad al poder! } } $usuario = new Usuario; echo $usuario ->password; // 1234 |
1
2
3
4
5
6
7
8
9
10
11
12
| class Usuario { public $usuario ; public $password ; public function __construct( $usuario ) { $this ->password = '1234' ; $this ->usuario = $usuario ; } } $usuario = new Usuario( 'juan' ); echo $usuario ->usuario; // juan |
__destruct()
de todas las clases en caso de que lo tengan. También podemos forzarlo usando la función unset
sobre el objeto. En el destructor se suelen implementar cierres de conexiones a bases de datos, liberación de memoria, etc.Veámoslo en un breve ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class Usuario { public $usuario ; public $password ; public function __construct( $usuario ) { $this ->password = '1234' ; $this ->usuario = $usuario ; } public function __destruct() { echo 'Muero...' ; } } $usuario = new Usuario( 'juan' ); unset( $usuario ); // 'Muero...'; |
Ejercicios con orientación a objetos PHP , de HERENCIA DE CLASES
Herencia de clases
Aquí es donde veremos uno de los aspectos más potentes de la orientación a objetos. Una clase puede heredar propiedades y métodos de otra clase. Esto es útil cuando quieres añadir funcionalidad a una clase ya existente.Siguiendo nuestro ejemplo, nuestra clase padre es
Usuario
y ahora, vamos a crear una clase hija que sea Administrador
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| class Usuario { public $usuario ; public $password ; public function saludar() { echo 'Hola ' . $this ->usuario; } } class Administrador extends Usuario { public function banear( $usuario ) { echo $usuario ->usuario. " ha sido baneado" ; } } $usuario = new Usuario; $usuario ->usuario = 'juan' ; $admin = new Administrador; $admin ->usuario = 'Súper López' ; $admin ->saludar(); // Hola Súper López $admin ->banear( $usuario ); // juan ha sido baneado |
extends
, la clase Administrador
ha heredado las propiedades usuario
y password
y el método saludar
y hemos añadido un nuevo método banear
a esta clase extendiendo las funcionalidades básicas de un usuario.
Quizá el ejemplo sea muy absurdo pero tened en cuenta que podemos querer
implementar funciones más complejas como login
, logout
, etc. y de esta forma nos acabamos ahorrando muchísimo código.
Ejercicios con orientación a objetos PHP, SOBREESCRIBIENDO METODOS
Sobreescribiendo métodos
Sobreescribir un método es tan sencillo como… ¡volverlo a definir! En la clase hija, volvemos a definir el método saludar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| class Usuario { public $usuario ; public $password ; public function saludar() { echo 'Hola ' . $this ->usuario; } } class Administrador extends Usuario { public function saludar() { echo 'Hola admin>> ' . $this ->usuario; } public function banear( $usuario ) { echo $usuario ->usuario. " ha sido baneado" ; } } $admin = new Administrador; $admin ->usuario = 'Súper López' ; $admin ->saludar(); // Hola admin>> Súper López |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| class Usuario { public $usuario ; public $password ; public function saludar() { echo 'Hola ' . $this ->usuario; } } class Administrador extends Usuario { public function saludar() { echo '¡' ; parent::saludar(); echo '!' ; } public function banear( $usuario ) { echo $usuario ->usuario. " ha sido baneado" ; } } $admin = new Administrador; $admin ->usuario = 'Súper López' ; $admin ->saludar(); // ¡Hola Súper López! |
Ejercicios con orientación a objetos PHP, de VISIBILIDAD DE METODOS Y PROPIEDADES
Visibilidad de métodos y propiedades
Hasta ahora tanto las propiedades como los métodos que hemos vistos, eran todospublic
. Ahora vamos a ver qué significa eso y el resto de tipos que tenemos.public A los métodos y propiedades
public
, se puede acceder desde cualquier sitio. Tanto dentro de la clase como fuera.protected Cuando declaramos una propiedad o método como
protected
, solo podremos accederlos desde la propia clase o sus descendientes (las clases hijas).private Los métodos y propiedades
private
solo pueden ser leídos dentro de la propia clase que lo define. Este breve ejemplo nos muestra lo que pasaría:
1
2
3
4
5
6
7
| class Usuario { public $usuario ; private $password ; } $usuario = new Usuario; $usuario ->password = 'Argofifa' ; // <-- ERROR! |
Ejercicios con orientación a objetos PHP, de CLASES y METODOS ESTATICOS
Clases y métodos estáticos
Las clases y métodos estáticos pueden ser de cualquiera de los tipos anteriores,public
, protected
o private
pero tienen la peculiaridad de que no requieren que la clase sea
instanciada. Además, las propiedades estáticas guardan el valor durante
la ejecución del script. Veamos un breve ejemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| class Usuario { public $usuario ; public $password ; public static $contador = 0; public function __construct() { self:: $contador ++; } } $usuario1 = new Usuario; echo Usuario:: $contador ; // 1 $usuario1 = new Usuario; echo Usuario:: $contador ; // 2 |
$this
, pero tendremos acceso a self
,
que viene a ser lo mismo solo que únicamente podremos usar métodos y
propiedades estáticas. Puedes llamar a métodos y usar propiedades
estáticas desde un método público pero no al contrario.
Operadores De Incremento y Decremento
<?php
echo "OPERADORES INCREMENTO";
$a = 3;
echo "</br>VARIABLE a = $a ";
$a++;
echo "</br>VARIABLE a = $a ";
echo "</br>OPERADORES DECREMENTO";
$b = 34;
echo "</br>VARIABLE a = $b ";
$b--;
echo "</br>VARIABLE a = $b ";
?>
echo "OPERADORES INCREMENTO";
$a = 3;
echo "</br>VARIABLE a = $a ";
$a++;
echo "</br>VARIABLE a = $a ";
echo "</br>OPERADORES DECREMENTO";
$b = 34;
echo "</br>VARIABLE a = $b ";
$b--;
echo "</br>VARIABLE a = $b ";
?>
Ejercicios con IF y ELSE
<?php
// ejemplos con if else
/* En una compra, si el descuento es 7%
si el monto es superior a 2000, el desceunto es 10% */
$monto1 = 11230000;
$monto2 = 2000;
$descuento1 = 10.0;
$descuento2 = 0.5;
if ($monto1 > 11230000)
{
$descuento1 = $monto1 * 10.0;
}
else
{
$descuento1 = $monto1 * 0.05;
}
if ($monto2 > 2000)
{
$descuento2 = $monto2 * 10.0;
}
else
{
$descuento2 = $monto2 * 0.05;
}
echo "</br> monto = $monto1 descuento = $descuento1 ";
echo "</br> monto = $monto2 descuento = $descuento2 ";
?>
;
IF
<?php
// ejemplos con if
/* En una compra, si el monto es superior a 100000, el desceunto es
17%*/
$monto1 = 1230000;
$descuento = 0.17;
if ($monto1 > 100000)
{
$descuento = $monto1 * 0.17;
}
echo "</br> monto = $monto1 descuento = $descuento ";
$monto1 = 3140;
$descuento = 0;
if ($monto1 > 100000)
{
$descuento = $monto1 * 0;
}
echo "</br> monto = $monto1 descuento = $descuento ";
?>
// ejemplos con if else
/* En una compra, si el descuento es 7%
si el monto es superior a 2000, el desceunto es 10% */
$monto1 = 11230000;
$monto2 = 2000;
$descuento1 = 10.0;
$descuento2 = 0.5;
if ($monto1 > 11230000)
{
$descuento1 = $monto1 * 10.0;
}
else
{
$descuento1 = $monto1 * 0.05;
}
if ($monto2 > 2000)
{
$descuento2 = $monto2 * 10.0;
}
else
{
$descuento2 = $monto2 * 0.05;
}
echo "</br> monto = $monto1 descuento = $descuento1 ";
echo "</br> monto = $monto2 descuento = $descuento2 ";
?>
;
IF
<?php
// ejemplos con if
/* En una compra, si el monto es superior a 100000, el desceunto es
17%*/
$monto1 = 1230000;
$descuento = 0.17;
if ($monto1 > 100000)
{
$descuento = $monto1 * 0.17;
}
echo "</br> monto = $monto1 descuento = $descuento ";
$monto1 = 3140;
$descuento = 0;
if ($monto1 > 100000)
{
$descuento = $monto1 * 0;
}
echo "</br> monto = $monto1 descuento = $descuento ";
?>
Ejemplos Con While, listando PAR E IMPAR
<?php
// ejemplos con while
/* Escribir un programa que lista los numeros del 1 al 1000 */
$numero = 1;
while ($numero <= 1000)
{
echo "</br> $numero ";
$numero++;
}
?>
;
<?php
// ejemplos con while
/* Escribir un programa que lista los numeros del 1 al 100 */
$numero = 0;
while ($numero < 100)
{
$numero++;
echo "</br> $numero ";
}
?>
;
PAR
En Orden Par
<?php
// ejemplos con while
/* Escribir un programa que lista los numeros pares entre
1 y 100 */
$numero = 0;
while ($numero <= 100)
{
$numero++;
if ($numero % 2 == 0)
{
echo "</br> $numero ";
}
}
?>
IMPAR
En Orden impar
<?php
// ejemplos con while
/* Escribir un programa que lista los numeros impares entre
2 y 101 */
$numero = 2;
while ($numero <= 101)
{
$numero++;
if ($numero %2 == 1)
{
echo "</br> $numero ";
}
}
?>
// ejemplos con while
/* Escribir un programa que lista los numeros del 1 al 1000 */
$numero = 1;
while ($numero <= 1000)
{
echo "</br> $numero ";
$numero++;
}
?>
;
<?php
// ejemplos con while
/* Escribir un programa que lista los numeros del 1 al 100 */
$numero = 0;
while ($numero < 100)
{
$numero++;
echo "</br> $numero ";
}
?>
;
PAR
En Orden Par
<?php
// ejemplos con while
/* Escribir un programa que lista los numeros pares entre
1 y 100 */
$numero = 0;
while ($numero <= 100)
{
$numero++;
if ($numero % 2 == 0)
{
echo "</br> $numero ";
}
}
?>
IMPAR
En Orden impar
<?php
// ejemplos con while
/* Escribir un programa que lista los numeros impares entre
2 y 101 */
$numero = 2;
while ($numero <= 101)
{
$numero++;
if ($numero %2 == 1)
{
echo "</br> $numero ";
}
}
?>
Ejemplo Arreglo For
<?php
// ejemplos con arreglos y for
// CREAR EL ARREGLO $a
$a = array(1000, 900, 800, 700, 600, 500);
// LISTAR LOS VALORES DEL ARREGLOS $a
// CREAR EL ARREGLO $b
$b = array(400, 300, 200, 100, 50, 0);
// LISTAR LOS VALORES DEL ARREGLOS $b
for ($i = 0; $i <= 5; $i++)
{
echo " $a[$i] ";
}
for ($i = 0; $i <= 5; $i++)
{
echo " $b[$i] ";
}
?>
;
Calcular
<?php
// ejemplos con for
/* Calcular el factorial de un numero */
$factorial = 21;
$numero = 55;
for ($i=1; $i <=$numero; $i++)
{
$factorial = $factorial * $i;
}
echo "numero = $numero factorial = $factorial ";
?>
;
Listando
<?php
// ejemplos con for
/* Escribir un programa que lista los numeros entre
1 y 100 */
for ($i=1; $i <=100; $i++)
{
echo "</br> $i ";
}
?>
// ejemplos con arreglos y for
// CREAR EL ARREGLO $a
$a = array(1000, 900, 800, 700, 600, 500);
// LISTAR LOS VALORES DEL ARREGLOS $a
// CREAR EL ARREGLO $b
$b = array(400, 300, 200, 100, 50, 0);
// LISTAR LOS VALORES DEL ARREGLOS $b
for ($i = 0; $i <= 5; $i++)
{
echo " $a[$i] ";
}
for ($i = 0; $i <= 5; $i++)
{
echo " $b[$i] ";
}
?>
;
Calcular
<?php
// ejemplos con for
/* Calcular el factorial de un numero */
$factorial = 21;
$numero = 55;
for ($i=1; $i <=$numero; $i++)
{
$factorial = $factorial * $i;
}
echo "numero = $numero factorial = $factorial ";
?>
;
Listando
<?php
// ejemplos con for
/* Escribir un programa que lista los numeros entre
1 y 100 */
for ($i=1; $i <=100; $i++)
{
echo "</br> $i ";
}
?>
Ejemplo Con Arreglos y For
<?php
// ejemplos con arreglos y for
// CREAR EL ARREGLO $a
$a = array("VICTOR ORTIZ", "JUAN VEGA", "MARIA SUAREZ", "OCTAVIO MACHADO", "MANUEL PEREZ", "IVAN LOPEZ");
// LISTAR LOS VALORES DEL ARREGLOS $a
//CREAR EL ARREGLO $b
$b = array("LUIS MARTINEZ", "CARLOS GARCIA", "HENDERSON RODRIGUEZ", "ALEJANDRA PAEZ", "NEHOMAR ESTEVEZ", "JUNIOR INFANTE");
// LISTAR LOS VALORES DEL ARREGLOS $b
foreach ($a as $salida )
{
echo "</br> $salida ";
}
foreach ($b as $salida )
{
echo "</br> $salida ";
}
?>
;
<?php
// ejemplos con arreglos y for
// CREAR EL ARREGLO $a
$a = array("LINDOLFO", "FEDERICO", "RAMON", "ROMAN");
// LISTAR LOS VALORES DEL ARREGLOS $a
// CREAR EL ARREGLO $b
$b = array("PETRA", "RAMONA", "ATRONOMELIA", "FEDERICA");
// LISTAR LOS VALORES DEL ARREGLOS $B
for ($i = 0; $i <= 3; $i++)
{
echo "</br> $a[$i] ";
}
for ($i = 0; $i <= 3; $i++)
{
echo "</br> $b[$i] ";
}
?>
// ejemplos con arreglos y for
// CREAR EL ARREGLO $a
$a = array("VICTOR ORTIZ", "JUAN VEGA", "MARIA SUAREZ", "OCTAVIO MACHADO", "MANUEL PEREZ", "IVAN LOPEZ");
// LISTAR LOS VALORES DEL ARREGLOS $a
//CREAR EL ARREGLO $b
$b = array("LUIS MARTINEZ", "CARLOS GARCIA", "HENDERSON RODRIGUEZ", "ALEJANDRA PAEZ", "NEHOMAR ESTEVEZ", "JUNIOR INFANTE");
// LISTAR LOS VALORES DEL ARREGLOS $b
foreach ($a as $salida )
{
echo "</br> $salida ";
}
foreach ($b as $salida )
{
echo "</br> $salida ";
}
?>
;
<?php
// ejemplos con arreglos y for
// CREAR EL ARREGLO $a
$a = array("LINDOLFO", "FEDERICO", "RAMON", "ROMAN");
// LISTAR LOS VALORES DEL ARREGLOS $a
// CREAR EL ARREGLO $b
$b = array("PETRA", "RAMONA", "ATRONOMELIA", "FEDERICA");
// LISTAR LOS VALORES DEL ARREGLOS $B
for ($i = 0; $i <= 3; $i++)
{
echo "</br> $a[$i] ";
}
for ($i = 0; $i <= 3; $i++)
{
echo "</br> $b[$i] ";
}
?>
Ejemplo Simple
<?php
echo "HOLA MUNDO";
?>
;
<?php
$nombre = "SR.RYAN BLAKE";
echo "HOLA MAESTER, COMO ESTA? ". $nombre;
?>
echo "HOLA MUNDO";
?>
;
<?php
$nombre = "SR.RYAN BLAKE";
echo "HOLA MAESTER, COMO ESTA? ". $nombre;
?>
Suscribirse a:
Entradas (Atom)