Resumo : neste tutorial, você aprenderá sobre variáveis variáveis PHP e como aplicá-las de forma eficaz.
Introdução às variáveis variáveis do PHP
Normalmente, você tem uma variável com um nome predefinido. Por exemplo, o seguinte define uma variável com o nome $title que contém uma string.
<?php
$title = 'PHP variable variables';
Linguagem de código: HTML, XML ( xml )
Em PHP, o nome de uma variável pode ser derivado do valor de outra variável. Por exemplo:
<?php
$my_var= 'title';
$$my_var = 'PHP variable variables';
echo $title;
Linguagem de código: HTML, XML ( xml )
Saída:
PHP variable variables
Como funciona.
- Primeiro, defina uma variável
$my_var
que contenha a string'title'
. - Segundo, defina uma variável variável que contenha a string
'PHP variable variables'
. Observe que usamos$
sinais duplos em vez de um. Ao fazer isso, criamos tecnicamente outra variável com o nome$title
. - Terceiro, exiba o valor da
$title
variável.
Exemplo de variáveis variáveis PHP
Suponha que você tenha a seguinte pasta e arquivos:
├── inc
| └── home.php
└── index.php
No index.php
, você define a seguinte view()
função que carrega o código de um arquivo especificado pelo $file
parâmetro:
<?php
function view(string $file): void
{
require __DIR__ . $file;
}
Linguagem de código: HTML, XML ( xml )
Para passar os dados para o script especificado pelo $file
, você pode adicionar um segundo parâmetro à view()
função como este:
<?php
function view(string $file, array $data): void
{
require __DIR__ . $file;
}
Linguagem de código: HTML, XML ( xml )
No $file
script, você pode acessar os elementos do $data
array.
O exemplo a seguir usa a view()
função para carregar o código do home.php
script e passar uma matriz de dois elementos para ele:
<?php
function view(string $file, array $data): void
{
require __DIR__ . '/' . $file;
}
view(
'inc/home.php',
[
'title' => 'Home',
'heading' => 'Welcome to my homepage'
]
);
Linguagem de código: HTML, XML ( xml )
No home.php
, você pode acessar o $data
array assim:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $data['title'] ?>/title>
</head>
<body>
<h1><?php echo $data['heading'] ?></h1>
</body>
</html>
Linguagem de código: HTML, XML ( xml )
Quando você inicia o index.php
arquivo, ele carrega o código do home.php
arquivo e exibe o título e o cabeçalho. No entanto, seria ótimo se você pudesse acessar os elementos do $data
array assim home.php
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $title ?>/title>
</head>
<body>
<h1><?php echo $heading ?></h1>
</body>
</html>
Linguagem de código: HTML, XML ( xml )
Para fazer isso, você precisa transformar os elementos do array em variáveis usando as variáveis variáveis. A nova view()
função ficará assim:
function view(string $file, array $data): void
{
foreach ($data as $key => $value) {
$$key = $value;
}
require __DIR__ . '/' . $file;
}
Linguagem de código: PHP ( php )
Na view()
função, iteramos sobre os elementos do $data
array e criamos variáveis cujos nomes são as chaves do $data
array e os valores são os valores do $data
array:
foreach ($data as $key => $value) {
$$key = $value;
}
Linguagem de código: PHP ( php )
As variáveis variáveis agora estão disponíveis no script especificado pelo $file
parâmetro. Por exemplo, se você chamar a view()
função para carregar o código do home.php
arquivo da seguinte maneira:
view(
'inc/home.php',
[
'title' => 'Home',
'heading' => 'Welcome to my homepage'
]
);
Linguagem de código: PHP ( php )
No home.php
arquivo, você pode acessar as variáveis $title
e $heading
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo $title ?>/title>
</head>
<body>
<h1><?php echo $heading ?></h1>
</body>
</html>
Linguagem de código: HTML, XML ( xml )
Resumo
- Variáveis variáveis PHP são variáveis cujos nomes são definidos dinamicamente.