Resumo : neste tutorial, você aprenderá sobre constantes de classe PHP e como usá-las de forma eficaz.
Introdução às constantes de classe PHP
Às vezes, você precisa definir uma constante específica para uma classe . Neste caso, você pode usar as constantes da classe PHP.
Para definir uma constante de uma classe, você usa a const
palavra-chave. Por exemplo:
<?php
class Circle
{
const PI = M_PI;
}
Linguagem de código: Python ( python )
Neste exemplo, definimos a PI
constante na Circle
classe. Por convenção, um nome de constante está em letras maiúsculas. Se o nome da constante contiver diversas palavras, você poderá usar o sublinhado ( _
) para separar as palavras, por exemplo MY_CONSTANT
.
Como uma constante é definida por classe, não por instância da classe, você usa a self
palavra-chave para referenciar a constante dentro da classe. Por exemplo:
<?php
class Circle
{
const PI = M_PI;
private $radius;
public function __construct(float $radius)
{
$this->radius = $radius;
}
public function area(): float
{
return self::PI * $this->radius ** 2;
}
}
Linguagem de código: Python ( python )
Neste exemplo, definimos a Circle
classe com a $radius
propriedade. Dentro do area()
método, calculamos a área do círculo utilizando o raio e a self::PI
constante.
Quando você define uma constante em uma classe, sua visibilidade é pública por padrão. Isso significa que você também pode acessar a constante fora da classe.
Para fazer referência à constante fora da classe, você usa o nome da classe e o ::
operador assim:
<?php
// Circle class
// ...
echo Circle::PI;
Linguagem de código: Python ( python )
Observe que você pode fazer referência à classe usando uma variável cujo valor é o nome da classe. Por exemplo:
<?php
$className = 'Circle';
echo $className::PI;
Linguagem de código: Python ( python )
Neste exemplo, em vez de usar Circle::PI
, usamos the $className::PI
para fazer referência à constante PI.
Desde o PHP 7.1.0, você pode usar palavras-chave modificadoras de visibilidade como private
, protected
e public
com a constante de classe. Por exemplo:
<?php
class Circle
{
private const PI = M_PI;
// other methods
}
Linguagem de código: Python ( python )
Neste exemplo, a PI
constante é privada e não pode ser usada fora da Circle
classe.
É possível definir uma constante de classe usando uma expressão constante. Uma expressão constante é uma expressão que contém apenas constantes. Por exemplo:
<?php
class MyClass
{
const ONE_THIRD = 1/3;
}
Linguagem de código: Python ( python )
Constantes e herança de classe PHP
O exemplo a seguir ilustra como definir uma constante na classe pai e substituí-la na classe filha. Por exemplo:
<?php
abstract class Model
{
protected const TABLE_NAME = '';
public static function all()
{
return 'SELECT * FROM ' . static::TABLE_NAME;
}
}
class User extends Model
{
protected const TABLE_NAME = 'users';
}
class Role extends Model
{
protected const TABLE_NAME = 'roles';
}
echo User::all(); // SELECT * FROM users;
echo Role::all(); // SELECT * FROM roles;
Linguagem de código: Python ( python )
Como funciona.
Primeiro, defina uma constante TABLE_NAME
na Model
classe. No all()
método estático, retorna uma consulta que seleciona todas as linhas do nome da tabela especificado pela TABLE_NAME
constante.
Segundo, defina as classes User
e Role
que estendem a Model
classe. Na classe User e Role, redefina a TABLE_NAME
constante.
Como as classes User
e Role
herdam o all()
método da Model
classe, elas podem chamar o all()
método.
Quando a User
classe chama o all()
método, o all()
método retorna a TALBE_NAME
constante esperada definida na User
classe. A mesma lógica é aplicada à Role
classe.
Resumo
- Use a
const
palavra-chave para definir uma constante de classe. - Use as palavras-chave modificadoras de visibilidade, incluindo público, protegido e privado. Por padrão, uma constante de classe é pública.