Gente, estou aprendendo um pouco de PHP e tentando usar POO. Seguindo um tutorial, criei uma classe para gerenciar os dados e chamei ela numa página para mostrar os dados recuperados do banco. Ela até exibe os dados, porém diz que a variável $conexao não foi definida, mas ela foi. Alguém poderia me ajudar a encontrar o problema?
A classe responsável por conectar e buscar informações no banco de dados:
BancoDeDados.php
<?php
class BancoDeDados{
protected $conexao = null;
public function conectar(){
$this->$conexao = new PDO("mysql:host=localhost;dbname=banco_de_teste", "root", null);
}
public function getTodasAsFotos(){
$sqlQuery = "SELECT nome_do_arquivo, extensao FROM arquivos";
$query = $this->$conexao->prepare($sqlQuery);
$query->execute();
return $query;
}
}
?>
O arquivo que exibe as informações, exibe-fotos.php:
<?php
require '../models/BancoDeDados.php';
$dados = new BancoDeDados();
$dados->conectar();
$topicos = $dados->getTodasAsFotos();
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="..\views\css\style.css">
<title>Document</title>
</head>
<body>
<main>
<table>
<thead>
<th>nome do arquivo</th>
<th>extensao</th>
</thead>
<tbody>
<?php foreach($topicos as $topico): ?>
<tr>
<td> <?= $topico['nome_do_arquivo'] ?> </td>
<td> <?= $topico['extensao'] ?> </td>
</tr>
<?php endforeach?>
</tbody>
</table>
</main>
</body>
</html>
Erro exibido na ela:
Estrutura das pastas:


