Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso - PHP Orientado A Objetos
Curso - PHP Orientado A Objetos
PHP Bsico
Este
curso
forma
parte
de
una
serie
de
cursos
cuyo
obje4vo
principal
es
el
de
ensear
el
lenguaje
de
programacin
PHP
a
personas
con
conocimientos
bsicos
de
programacin,
y
prepararlos
para
llevar
a
cabo
proyectos
de
gran
envergadura.
Para
ello
se
ensear
PHP
bsico
(este
curso),
PHP
orientado
a
Objetos,
las
mejores
y
ms
novedosas
prac4cas
en
PHP,
Patrones
de
Diseo
y
el
Zend
Framework.
Este
curso
de
PHP
Orientado
a
Objetos
pretender
ensear
las
herramientas
bsicas
para
desarrollar
sistemas
web
bajo
el
paradigma
de
programacin
orientada
a
objetos
en
lenguaje
PHP.
Aqu
se
cubrirn
los
aspectos
bsicos
ms
importantes
de
la
programacin
orientada
a
objetos
tanto
desde
el
punto
de
vista
terico
como
prc4co.
Se
asume
que
el
par4cipante
4ene
conocimientos
bsicos
de
programacin
en
PHP
o
que
ha
par4cipado
en
el
curso
anterior
a
ste
de
PHP
Bsico.
Una
funcin
na4va
es
aqulla
que
ya
viene
includa
como
parte
de
las
libreras
internas
del
lenguaje
y
por
lo
tanto
no
debe
ser
implementada
por
el
programador.
Esto
nos
ahorra
4empo.
PHP
se
caracteriza
por
ser
un
lenguaje
exible.
Esta
caracters4ca
4ene
sus
ventajas
y
desventajas,
como
veremos
ms
adelante.
10
El
cdigo
anterior
busca
encapsular,
a
travs
de
una
funcin,
lgica
propia
a
un
slo
bloque
de
cdigo.
Sin
embargo,
esta
estrategia
falla
por
varias
razones.
Visto
de
otra
forma,
al
ver
ste
cdigo
pregntese
lo
siguiente:
Qu
pasa
cuando
se
empiezan
a
tener
muchas
propiedades?
O
si
se
comienzan
a
tener
muchas
funciones?
Qu
pasa
si
queremos
otro
conjunto
de
ru4nas
y
parte
de
los
nombres
de
las
funciones
se
repiten?
Ver
archivo
CodigoImpera4vo.php
en
la
carpeta
/Ejemplos
11
El
mismo
cdigo
del
ejemplo
anterior,
pero
en
este
caso
orientado
a
objetos.
En
el
cdigo
vemos
una
clase
llamada
Automvil
que
posee
dos
propiedades
y
un
mtodo.
Ms
adelante
explicaremos
con
mayor
detalle
qu
signican
cada
una
de
estas
cosas.
Por
el
momento
es
interesante
observar
como
en
un
slo
bloque
de
cdigo
(agrupado
entre
las
palabras
claves
class
Atuomovil
{
})
Tenemos
agrupada
la
informacin
que
trabaja
sobre
un
Automvil.
Ms
an,
al
momento
de
instanciar,
es
decir,
realizar
copias
de
un
automvil,
vemos
como
la
POO
nos
hace
la
vida
fcil.
En
el
cdigo
anterior
$a
y
$b
son
copias
dis4ntas,
permi4endo
as
que
$a
tenga
una
propiedad
modelo
que
es
suya
propia
y
dis4nta
de
la
propiedad
modelo
de
la
variable
$b.
CodigoOrientadoAObjetos.php
12
13
14
15
Como
ya
se
ha
reejado
antes,
toda
clase
consta
de
la
palabra
clave
class
seguido
del
nombre
de
la
clase
y
un
bloque
de
cdigo
entre
llaves.
Dentro
del
bloque
de
cdigo
se
pueden
crear
slo
tres
4pos
de
bloques
bsicos:
constantes,
variables
y
mtodos.
Una
vez
creadas
dentro
de
las
llaves,
tanto
la
constante,
como
la
variable,
como
la
funcin
pertenecen
a
la
clase,
y
para
ser
u4lizadas
hay
que
acceder
a
travs
de
la
clase.
ClaseSimple.php
16
Aqu
se
muestran
las
carctersitcas
bsicas
de
una
clase.
Una
analoga
apropiada
(pero
muy
bsica)
al
momento
de
pensar
en
una
clase
es
pensar
en
un
molde
del
cul
se
van
a
extraer
ml4ples
copias
u
objetos
similares.
A
diferencia
de
un
objeto
osico,
en
este
caso
las
copias
sern
dinmicas
y
pueden
cambiar
su
comportamiento
y
estructura
al
momento
de
ejecutar
un
programa.
17
18
19
20
21
22
PropiedadesDeClases.php
23
Una
de
las
diferencias
entre
las
propiedades
de
una
clase
y
las
variables
comunes
es
que
las
propiedades
al
ser
declaradas
dentro
de
la
clase
no
pueden
hacer
referencia
a
otras
variables.
Fuera
de
la
clase
si
se
pueden
asignar
otros
valores:
$miModelo
=
Toyota;
Class
Automovil{
//Correcto:
public
sta4c
$modelo;
//Incorrecto:
public
sta4c
$modelo
=
$miModelo;
}
Automovil::$modelo
=
$miModelo;
Esta
limitacin
se
asignacin
se
debe
a
que
el
intrprete
4ene
que
conocer
cul
es
el
valor
de
todas
las
propiedades
de
una
clase
al
momento
de
leer
el
cdigo.
24
Una
de
las
diferencias
entre
las
propiedades
de
una
clase
y
las
variables
comunes
es
que
las
propiedades
al
ser
declaradas
dentro
de
la
clase
no
pueden
hacer
referencia
a
otras
variables.
Fuera
de
la
clase
si
se
pueden
asignar
otros
valores:
$miModelo
=
Toyota;
Class
Automovil{
//Correcto:
public
sta4c
$modelo;
//Incorrecto:
public
sta4c
$modelo
=
$miModelo;
}
Automovil::$modelo
=
$miModelo;
Esta
limitacin
se
asignacin
se
debe
a
que
el
intrprete
4ene
que
conocer
cul
es
el
valor
de
todas
las
propiedades
de
una
clase
al
momento
de
leer
el
cdigo.
25
Una
de
las
diferencias
entre
las
propiedades
de
una
clase
y
las
variables
comunes
es
que
las
propiedades
al
ser
declaradas
dentro
de
la
clase
no
pueden
hacer
referencia
a
otras
variables.
Fuera
de
la
clase
si
se
pueden
asignar
otros
valores:
$miModelo
=
Toyota;
Class
Automovil{
//Correcto:
public
sta4c
$modelo;
//Incorrecto:
public
sta4c
$modelo
=
$miModelo;
}
Automovil::$modelo
=
$miModelo;
Esta
limitacin
se
asignacin
se
debe
a
que
el
intrprete
4ene
que
conocer
cul
es
el
valor
de
todas
las
propiedades
de
una
clase
al
momento
de
leer
el
cdigo.
26
27
Una
de
las
diferencias
entre
las
propiedades
de
una
clase
y
las
variables
comunes
es
que
las
propiedades
al
ser
declaradas
dentro
de
la
clase
no
pueden
hacer
referencia
a
otras
variables.
Fuera
de
la
clase
si
se
pueden
asignar
otros
valores:
$miModelo
=
Toyota;
Class
Automovil{
//Correcto:
public
sta4c
$modelo;
//Incorrecto:
public
sta4c
$modelo
=
$miModelo;
}
Automovil::$modelo
=
$miModelo;
Esta
limitacin
se
asignacin
se
debe
a
que
el
intrprete
4ene
que
conocer
cul
es
el
valor
de
todas
las
propiedades
de
una
clase
al
momento
de
leer
el
cdigo.
EjemploSelf.php
28
29
30
EjemploThisIncorrecto.php
31
El
constructor
permite
generar
un
estado
inicial
del
objeto
que
se
adapte
a
los
requerimientos.
Aqu
nos
interesa
guardar
los
dos
parmetros
que
se
le
pasan
al
constructor,
posiblemente
para
u4lizarlos
despus.
Constructor.php
32
33
34
35
36
37
Ahora
la
clase
Camion
4ene
las
tres
propiedades:
$modelo,
$marca
y
$ejes.
HerenciaBasico.php
38
39
40
HerenciaSobrescritura.php
41
42
43
44
45
HerenciaConstructores.php
46
47
HerenciaInvocarAnulados.php
48
49
50
51
52
RestringirAcceso.php
53
54
RestringirAccesoUso.php
55
56
RestringirAccesoMetodos.php
57
58
59
60
61
Instanceof.php
62
63
64
ClasesAbstractas.php
65
66
ClasesAbstractasFiltroLetras.php
67
68
69
ClasesAbstractasFiltroNumeros.php
70
71
Interfaces.php
72
73
74
75
76
77
78
ExcepcionesIntroduccion.php
79
80
Las
excepciones
manejan
un
mensaje
y
un
cdigo
de
error
que
son
propiedades
del
objeto
Excep4on
ExcepcionesCodigo.php
81
82
83
84
ExtendiendoExcepciones.php
85
86
87
88
89
90
MetodosFinales.php
91
ClasesFinales.php
92
93
94
MetodoDestruct.php
95
MetodoCall.php
96
MetodoCallSta4c.php
97
MetodoGet.php
98
99
100
101
MetodoSet.php
102
103
104
105
MetodoIsset.php
106
MetodoUnset.php
107
108
Serialize.php
109
110
MetodoSleep.php
111
112
MetodoWakeup.php
113
114
MetodoToString.php
115
116
117
118
119
120
MetodoSetState.php
121
122
123
124
125
TiposReferencias.php
126
127
128
ClonarObjetosReferencias.php
129
130
131
MetodoClone.php
132
133
134
135
136
137
MetodoClone.php
138
139
140
141
142
MetodoClone.php
143
144
145
146
147
148
149
150
MetodoClone.php
151
152
153
154
155
156