10. Classes e Objetos <?php class A { private $nome ; function __construct( $nome ) { $this ->nome = $nome ; } function oi() { if ( isset ( $this )) { echo 'Oi, ' . $this ->nome. '. Este objeto é instância da classe ' ; echo get_class( $this ). '<br/>' ; } else { echo 'Oi, não sei o seu nome, pois o método está sendo ' ; echo 'executado estaticamente.<br/>' ; } } } class B { function ola() { A::oi(); } } $a = new A( "Maria" ); $a ->oi(); A::oi(); $b = new B(); $b ->ola(); B::ola(); ?>
11.
12. Construtores e Destrutores <?php class MinhaClasseDestruivel { function __construct() { print "No construtor<br/>" ; $this ->name = "MinhaClasseDestruivel" ; } function __destruct() { print "Destruindo $this ->name " ; } } $obj = new MinhaClasseDestruivel(); ?>
14. Visibilidade dos membros <?php class MinhaClasse { public function __construct() { } public function meuPublico() { } protected function meuProtegido() { } private function meuPrivado() { } // Se nada for dito, é public function foo() { $this ->meuPublico(); $this ->meuProtegido(); $this ->meuPrivado(); } } $minhaclasse = new MinhaClasse; $minhaclasse ->foo(); $minhaclasse ->meuPublico(); // Funciona $minhaclasse ->meuProtegido(); // Erro Fatal $minhaclasse ->meuPrivado(); // Erro Fatal ?>
15.
16.
17.
18. Inicializações válidas <?php class SimpleClass { // declarações de membro válidas public $var6 = myConstant; public $var7 = self ::classConstant; public $var8 = array ( true , false ); } ?>
19.
20.
21. Classes Abstratas <?php abstract class ClasseAbstrata { abstract protected function pegarValor(); abstract protected function valorComPrefixo( $prefixo ); public function imprimir() { print $this ->pegarValor() . '<br/>' ; } } class ClasseConcreta1 extends ClasseAbstrata { protected function pegarValor() { return "ClasseConcreta1" ; } public function valorComPrefixo( $prefixo ) { return " { $prefixo } ClasseConcreta1" ; } } $classe1 = new ClasseConcreta1; $classe1 ->imprimir(); echo $classe1 ->valorComPrefixo( 'FOO_' ) . '<br/>' ; ?>
22. Interfaces <?php interface Animal { public function emiteSom(); } class Gato implements Animal { public function emiteSom() { echo 'Miaaauhh' ; } } class Cachorro implements Animal { public function emiteSom() { echo 'Au, Au' ; } } $a = new Gato(); $b = new Cachorro(); echo " { $a ->emiteSom()} <br/>" ; echo " { $b ->emiteSom()} <br/>" ; ?>