class
Uma
classe
é
uma
coleção
de
variáveis
e
funções
trabalhando
com
essas
variáveis
.
Uma
classe
é
definida
usando-se
a
seguinte
sintaxe
:
Isto
define
uma
classe
chamada
CarrinhoDeCompras
que
consiste
de
uma
matriz
associativa
de
artigos
no
carrinho
e
duas
funções
para
acrescentar
e
remover
itens
deste
carrinho
.
Cuidado
|
Os
cuidados
a
seguir
devem
ser
tomados
a
partir
do
PHP
4
:
O
nome
stdClass
é
utilizado
internamente
pela
Zend
e
é
uma
palavra
reservada
.
Você
não
pode
ter
uma
classe
chamada
stdClass
no
PHP
.
O
nome
de
função
__sleep
e
__wakeup
O
nome
de
função
__sleep
e
__wakeup
são
especialmente
mágicos
para
as
classes
PHP
.
Você
não
pode
ter
esses
nomes
em
nenhuma
de
suas
classes
a
não
ser
que
você
deseje
aplicar
essa
funcionalidade
mágica
com
elas
.
Veja
abaixo
para
mais
detalhes
.
O
PHP
reserva
todos
os
nomes
de
funções
começando
com
__
como
mágicas
.
É
recomendável
que
você
não
utilize
nome
de
funções
começando
com
__
no
PHP
a
não
ser
que
você
precise
dessas
funcionalidades
mágicas
.
|
Nota
:
No
PHP
4
,
somente
inicializações
com
constantes
são
permitidas
para
variáveis
com
var
.
Para
inicializar
variáveis
com
valores
não
constantes
,
você
precisará
de
uma
função
de
inicialização
chamada
automaticamente
quando
o
objeto
for
construído
a
partir
da
classe
.
Por
isso
,
essa
função
é
conhecida
como
construtor
(
veja
baixo
)
.
Classes
são
tipos
,
ou
seja
,
são
apenas
um
modelo
das
variáveis
normais
.
Você
pode
criar
uma
variável
(
ou
instância
)
do
tipo
desejado
com
o
operador
new
.
Isto
cria
os
objetos
$carrinho
e
$outro_carrinho
,
ambos
a
partir
da
classe
CarrinhoDeCompras
.
A
função
add_item(
)
do
objeto
$carrinho
foi
chamada
e
acrescentou
1
item
do
artigo
número
10
a
ele
.
3
itens
do
artigo
número
0815
foi
acrescentado
no
$outro_carrinho
.
Ambos
,
$carrinho
e
$outro_carrinho
,
tem
as
funções
add_item(
)
,
remove_item(
)
e
a
variável
itens
.
Elas
são
funções
e
variáveis
distintas
entre
si
.
Você
pode
pensar
no
objetos
como
os
diretórios
de
um
sistema
de
arquivos
.
Num
disco
você
pode
ter
dois
arquivos
diferentes
README.TXT
,
partindo
de
que
eles
estão
em
diretórios
diferentes
.
Da
mesma
forma
que
você
teria
de
especificar
o
caminho
completo
para
acessar
cada
arquivo
a
partir
do
diretório
principal
,
você
também
tem
de
especificar
o
nome
completo
do
objeto
e
função
que
você
quer
chamar
.
Em
termos
do
PHP
,
o
diretório
principal
pode
ser
o
escopo
global
de
nomes
,
e
o
separador
de
diretórios
-
.
Portanto
,
os
nomes
$carrinho
-
items
e
$outro_carrinho
-
items
são
duas
variáveis
diferentes
.
Note
que
a
variável
é
chamada
$carrinho
-
items
e
não
$carrinho
-
$items
,
mesmo
porque
,
um
nome
de
variável
em
PHP
tem
apenas
um
único
sinal
de
cifrão
.
Quando
definindo
uma
classe
,
você
não
pode
saber
com
que
nome
os
objetos
serão
acessados
em
seus
programas
:
enquanto
escrevia
a
classe
CarrinhoDeCompras
,
é
impossível
saber
se
o
objeto
criado
a
partir
dela
será
chamado
$carrinho
ou
$outro_carrinho
(
ou
ainda
ambos
)
.
Assim
,
você
não
pode
escrever
$carrinho
items
dentro
da
própria
classe
CarrinhoDeCompras
.
Entretanto
,
para
poder
acessar
suas
próprias
funções
e
variáveis
de
dentro
da
classe
,
pode-se
utilizar
a
pseudo-variável
$this
,
que
pode
ser
lida
como
'
eu
mesmo
'
ou
'objeto
atual
'
.
Dessa
forma
,
'
$this
-
items[$artnr
]
+=
$num
'
pode
ser
lido
como
'acrescente
$num
para
o
contador
$artnr
do
meu
array
items
'
ou
'acrescente
$num
para
o
contador
$artnr
do
array
do
objeto
atual
'
.