segunda-feira, 19 de maio de 2008

PHP 5 - Funções que auxiliam a nossa vida

No PHP 5 temos algumas funções que ajudam e muito, a facilitar nossa vida de programador.
Por exemplo:
__autoload($nome_classe) = função que carrega classes ao ser instanciada pela primeira vez.
Ex:


<?php
//executa a função __autoload para carregar as classes
function __autoload($strNomeClasse)
{
//se tiver classes em vários lugares se cria um array com as pastas
$arrPasta = array('classes');

//verifica as pastas que contém as classes
foreach ( $arrPasta AS $strNomePasta )
{
//se existe o arquivo carrega ele
if( file_exists("$strNomePasta/$strNomeClasse.class.php" ) )
{
include_once("$strNomePasta/$strNomeClasse.class.php");
}
}
}
//instancia a classe
$objClass1 = new Class1();
$objClass1->mostra();
?>


__set($nome_propriedade, $valor) = intercepta toda a atribuição em uma classe e seta os atributos.
Ex:


<?php
/**
* Classe de exemplo
* @author Tiago Finger
* @version 1.0
* @package teste
*/
class Exemplo
{
/**
* @var int $intPropriedade1 primeiro atributo da classe
* @access private
*/
private $intPropriedade1;

/**
* @var int $intPropriedade2 segundo atributo da classe
* @access private
*/
private $intPropriedade2;

/**
* Usado para setar os atributos da classe
* @param string $strPropriedade nome do atributo da classe
* @param mixed $mixValor valor da propriedade
* @return void
* @access public
*/
public function __set($strPropriedade, $mixValor)
{
$this->$strPropriedade = $mixValor;
}

/**
* Retorna a soma de $intPropriedade1 e $intPropriedade2
* @param void
* @return int
* @access public
*/
public function somar()
{
$intSoma = $this->intPropriedade1 + $this->intPropriedade2;
return $intSoma;
}

}

//cria instância da classe exemplo
$objExemplo = new Exemplo();

//seta valores dos atributos da classe
$objExemplo->__set('intPropriedade1', 2);
$objExemplo->__set('intPropriedade2', 10);

//executa metódo
echo 'Valor total = '.$objExemplo->somar();
?>



__get($propriedade) = intercepta toda requisição da classe e retorna o atributo.
Ex:


<?php
/**
* Classe de exemplo
* @author Tiago Finger
* @version 1.0
* @package teste
*/
class Exemplo
{
/**
* @var int $intPropriedade1 primeiro atributo da classe
* @access private
*/
private $intPropriedade1;

/**
* @var int $intPropriedade2 segundo atributo da classe
* @access private
*/
private $intPropriedade2;

/**
* Usado para setar os atributos da classe
* @param string $strPropriedade nome do atributo da classe
* @param mixed $mixValor valor da propriedade
* @return void
* @access public
*/
public function __set($strPropriedade, $mixValor)
{
$this->$strPropriedade = $mixValor;
}

/**
* Usado para pegar os atributos da classe
* @param string $strPropriedade nome do atributo da classe
* @return void
* @access public
*/
public function __get($strPropriedade)
{
return $this->$strPropriedade;
}

/**
* Retorna a soma de $intPropriedade1 e $intPropriedade2
* @param void
* @return int
* @access public
*/
public function somar()
{
$intSoma = $this->intPropriedade1 + $this->intPropriedade2;
return $intSoma;
}

}

//cria instância da classe exemplo
$objExemplo = new Exemplo();

//seta valores dos atributos da classe
$objExemplo->__set('intPropriedade1', 2);
$objExemplo->__set('intPropriedade2', 10);

//retorna propriedade
echo 'Primeiro atributo do objeto = '.
$objExemplo->__get('intPropriedade1').'<br />';
echo 'Segundo atributo do objeto = '.
$objExemplo->__get('intPropriedade2').'<br />';
?>



Falou galera!
Abraços.

Nenhum comentário:

Postar um comentário