Variáveis ​​PHP Variáveis

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_varque 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 $titlevariá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 $fileparâ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 $filescript, você pode acessar os elementos do $dataarray.

O exemplo a seguir usa a view()função para carregar o código do home.phpscript 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 $dataarray 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.phparquivo, ele carrega o código do home.phparquivo e exibe o título e o cabeçalho. No entanto, seria ótimo se você pudesse acessar os elementos do $dataarray 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 $dataarray e criamos variáveis ​​cujos nomes são as chaves do $dataarray e os valores são os valores do $dataarray:

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 $fileparâmetro. Por exemplo, se você chamar a view()função para carregar o código do home.phparquivo da seguinte maneira:

view(
    'inc/home.php',
    [
        'title' => 'Home',
        'heading' => 'Welcome to my homepage'
    ]
);Linguagem de código:  PHP  ( php )

No home.phparquivo, 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *