Guia rápido para propriedades estáticas do PHP

O objetivo deste artigo é apresentar o conceito de propriedades estáticas do PHP , incluindo como você pode declará-las e usá-las em seu código.

Também discutiremos alguns casos de uso úteis para propriedades estáticas, bem como algumas práticas recomendadas.

A propriedade estática do PHP é uma propriedade compartilhada por todas as instâncias da classe.

Uma propriedade estática, em contraste com uma propriedade regular, pertence à própria classe e não pertence a nenhuma instância específica da classe. Isso significa que quaisquer alterações feitas em qualquer propriedade estática de um objeto terão efeito em todos os outros objetos que compartilham a mesma propriedade.



Propriedades estáticas do PHP

As propriedades estáticas do PHP são propriedades que pertencem a uma classe em geral e não são específicas de nenhuma instância dessa classe em particular.

As propriedades estáticas do PHP são variáveis ​​de nível de classe que são compartilhadas por todas as instâncias de uma classe.

Eles são declarados usando a palavra-chave static e podem ser acessados ​​usando o operador de resolução de escopo :: .

As propriedades estáticas são definidas dentro da definição de classe, mas fora de qualquer método. Eles podem ser inicializados com um valor padrão ou não inicializados.

Sintaxe

<?php
class ClassName {
public static $staticProp = "mrexamples";
}
?>

Sintaxe

ClassName::staticProp;

Como exemplo, vejamos o seguinte:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
class Website {
public static $name = "mrexamples.com";
}
// Get static property
echo Website::$name;
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

Aqui, declaramos uma propriedade estática: $name .

Em seguida, repetimos o valor da propriedade estática usando o nome da classe, dois pontos duplos ( :: ) e o nome da propriedade (sem criar uma classe primeiro).

Definimos uma classe chamada Website com uma única propriedade estática chamada $name .

A propriedade $name é definida como “ mrexamples.com “.

Para acessar uma propriedade estática, usamos o operador de resolução de escopo (::) seguido do nome da classe e do nome da propriedade estática. Neste caso, acessamos a propriedade $name da classe Website utilizando a seguinte sintaxe :

Website::$name

A instrução echo então gera o valor da propriedade $name, que é “mrexamples.com”.

Existem métodos estáticos e métodos não estáticos que podem ser encontrados em uma classe.

Usando a palavra-chave self , bem como os dois pontos duplos ( :: ), você pode obter acesso a uma propriedade estática de outro método na mesma classe:

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
class Website
{
public static $name = "mrexamples.com";
public function printingStaticStr()
{
return self::$name;
}
}
$name = new Website();
echo $name->printingStaticStr();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Uma propriedade estática pode ser chamada de uma classe filha usando a palavra-chave pai dentro da classe filha :

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
class Website {
public static $name = "mrexamples.com <br>";
}
class Printing extends Website
{
public function printingStaticStr()
{
return parent::$name;
}
}
echo Printing::$name;
$printing = new Printing();
echo $printing->printingStaticStr();
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

O código acima define uma classe Website com uma propriedade estática $name definida com o valor “ mrexamples.com ” que contém uma tag de quebra de linha HTML. Ele também define uma classe filha Printing que estende Website.

A classe Printing tem um método printingStaticStr() que retorna o valor da propriedade $name usando a sintaxe parent::$name . Este método pode ser usado para acessar a propriedade estática da classe pai Website.

Na próxima seção, o código imprime o valor da propriedade $name da classe Printing usando Printing::$name. Isso resultará em “mrexamples.com”, pois a propriedade $name é herdada da classe pai Website.

Finalmente, o código cria um objeto $printing da classe Printing usando $printing = new Printing() . Esta linha de código cria um novo objeto da classe Printing.

O código então chama o método printingStaticStr() no objeto $printing usando $printing->printingStaticStr() . Este método retorna o valor da propriedade $name da classe pai Website usando a sintaxe parent::$name . Como o valor da propriedade $name contém uma tag de quebra de linha HTML, a saída conterá uma quebra de linha entre “mrexamples.com” e qualquer saída subsequente.

As propriedades estáticas do PHP também podem ser usadas para armazenar dados compartilhados em várias instâncias de uma classe ou para acompanhar o estado global em um aplicativo.

No entanto , é importante usá-los com cuidado e evitar o uso excessivo, pois podem levar a comportamentos inesperados se não forem gerenciados adequadamente.
Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone