Skip to content

Posts tagged ‘classes’

3
Mar

php metodo constructor

O método con­stru­tor de uma classe sem­pre é exe­cu­tando quando um objeto da classe é instan­ci­ado. É um tipo espe­cial de função do PHP. Nor­mal­mente o pro­gra­mador uti­liza o método con­stru­tor para ini­cializar os atrib­u­tos de um objeto, como por exem­plo: Esta­b­ele­cer conexão com um banco de dados, aber­tura de um arquivo que será uti­lizado para escrita de log, etc.

O que você deve saber sobre o método con­stru­tor:

  • O método con­stru­tor define os val­ores ini­ci­ais dos atrib­u­tos de um objeto;
  • Con­stru­tores são funções, logo aceitam pas­sagem de parâmetros;
  • Difer­ente de out­ras lin­gua­gens o PHP aceita ape­nas um construtor.

Caso o pro­gra­mador não defina um método con­stru­tor para a classe, auto­mati­ca­mente ao instan­ciar um objeto seus atrib­u­tos serão ini­cial­iza­dos com o valor NULL.

Antes da ver­são PHP5 por con­venção o con­stru­tor era um método que tinha o mesmo nome da classe. A par­tir da ver­são 5 do PHP podemos definir o método con­stru­tor da forma antiga ou usar o método a seguir (atenção para os dois under­score):

__construct()

Sem­pre que você quiser fazer alguma coisa na ini­cial­iza­ção da classe, terá que usar esse método. O método con­stru­tor do PHP é exe­cu­tado logo que a linha abaixo é executada.

$pessoa1=new Pessoa();

Abaixo a forma antiga e a forma mais atual de declarar o método construtor:

class Pessoa
{
   function Pessoa() // Versão do PHP 4 e opcional para o PHP 5
  {
     echo "Olá, tudo bem com você";
   }
  function __construct() // PHP5
 {
   echo "Olá, tudo bem com você";
 }
}

No artigo vou uti­lizar a função (ou método) __construct.

Pas­sando parâmet­ros para o método construtor

No momento da cri­ação do nosso objeto podemos pas­sar val­ores fixos, e tam­bém variáveis.

class Pessoa
{
  function __construct($name)
 {
   echo "Olá ".$name." Tudo bem?";
 }
}

Agora ao criar nosso objeto deve­mos pas­sar como parâmetro o nome da pes­soa. Veja o exemplo:

$pessoa=new Pessoa('Antenor');

Uti­lizando o método con­stru­tor podemos pas­sar mais de um parâmetro:

class Pessoa
{
  function __construct($nome, $idade)
 {
   echo "A pessoa se chama ".$nome."e sua idade é: ".$idade;
 }
}

Nesse exem­plo pas­samos como parâmetro o nome e a idade da pes­soa no momento que instan­ci­amos nosso objeto.

$pessoa1=new Pessoa('Antenor',’26’);

Método destru­tor

Ao falar­mos de método con­stru­tor não podemos deixar de falar, mesmo que breve­mente, sobre o método destru­tor do PHP.

O método __destruct() fun­ciona como um final­izador e, é exe­cu­tado ao finalizarmos um objeto, ou seja, quando o objeto é desa­lo­cado da memória, quando atribuí­mos NULL ao objeto, quando usamos a função unset() no objeto, ou tam­bém quando o pro­grama é fechado.

function __destruct()
{
echo “Objeto finalizado”;
}

Toda classe tem duas funções espe­ci­ais, e são elas, con­stru­tor e destru­idor. Mesmo se você não declarar explici­ta­mente e defini-las, elas existem.

Fonte:kadunew.com

1
Jul

Download PHP 5.3.0 já saiu

elephpant-elephant-php-logo

Foi lançada a ver­são 5.3.0 do PHP. Segundo a equipa de desen­volvi­mento, esta foi a maior imple­men­tação das ver­sões série 5. Ela traz, além de várias novi­dades, uma porção de bugs foram cor­rigi­dos (mais de 140…).

Algu­mas novi­dades em destaque, são:

Name­spaces

Name­space” é um con­ceito ampla­mente uti­lizado em várias áreas da infor­mática.
Imag­inem um sis­tema oper­a­tivo com dois arquivos com o mesmo nome. Como eles não podem estar den­tro da mesma pasta, certo? Sendo assim, cri­amos links de pas­tas difer­entes para cada um deles.
No PHP seria como criar var­iáveis den­tro de namespaces.

Qual­quer código PHP pode ser colo­cado em name­spaces, mas ape­nas três tipos de código (Class, Funções e Con­stantes) são afec­ta­dos por elas.

A util­i­dade disso é evi­tar prob­le­mas com nomes de var­iáveis do sis­tema ou de pro­gra­mas feitos por ter­ceiros. Tam­bém evita ter que criar nomes lon­gos para os objec­tos para impedir que não haja con­fli­tos com out­ros objec­tos do mesmo nome.

Assim como out­ras funções do PHP (como a header() por exem­plo), os name­spaces devem ser definidos antes de qual­quer echo ou print.

Exis­tem dois tipos de name­spaces: os name­spaces comuns e os sub-namespaces. Veja um exem­plo de declar­ação de name­spaces:
Late Sta­t­icBind­ing

Outra novi­dade é a imple­men­tação do con­ceito de “Late Sta­tic Bind­ing”. Usando Late Sta­t­ics Bind­ings, a res­olução de méto­dos não é feito na classe onde ele foi cri­ado, mas sim de forma hierárquica, seguindo a ordem de exe­cução. Para enten­der mel­hor, veja o exem­plo com­par­a­tivo entre a imple­men­tação que tín­hamos, e a nova possibilidade:

Agora com Sta­tic Bind­ings temos:
GC (Garbage Colector)

Agora é pos­sível armazenar o resul­tado de var­iáveis em cache. Desta forma, mesmo que o estado de sua var­iável mude, é pos­sível recu­perar um valor ante­rior. Veja o exem­plo de uso:

gc_enable (); // activa o cache que irá guardar os resultados

$valor = ‘Primeiro valor’;
echo $valor. ‘‘;
$valor = ‘Segundo valor’;
echo $valor. ‘‘;

$ante­ri­ores = gc_collect_cycles(); // apanha os val­ores ante­ri­ores em cache

$valor = $ante­ri­ores [’valor’] [0]; // apanha a posi­cao 0 da posi­cao de nome ‘valor’

gc_disable($anteriores); // limpa os val­ores apan­hados e desa­loca da memoria

echo $valor . ‘‘;

/*
Esse script irah retornar:

Primeiro valor
Segundo valor
Primeiro valor
*/

?>

Funções Anôn­i­mas

Funções Anôn­i­mas per­mitem criar funções sem um nome especí­fico. Elas são muito úteis quando usadas como parâmet­ros de funções de call­back (como preg_replace_callback), mas podem ter vários out­ras util­i­dades. Veja um exemplo:

Além dessas novas funções, exis­tem alter­ações nos dri­ves de lig­ação com o MySQL, alter­ações de com­por­ta­mento em funções já ampla­mente uti­lizadas como a função ses­sion(), md5(), opendir().

Link para down­load : http://php.net/downloads.php

Fonte: http://samuelcorradi.com.br

Bad Behavior has blocked 67 access attempts in the last 7 days.