I'm trying to display n names from a list, I'm making use of sessions for this to be possible. When I use the session via form page elements are added n times to the array, however when I use the even by the class is not returned the expected result, wanted to know where I'm going wrong.
Thank you in advance.
form.php
<?php
include "Livro.class.php";
if($_POST){
$livro = new Livro;
// SESSÃO
if(empty( $_SESSION['books'])){
$_SESSION['books'] = [];
}
array_push($_SESSION['books'], [$_POST['name']]);
// CLASSE
$livro->add($_POST['name']);
// OUTPUT
echo "Da classe: <br>";
var_dump($livro->livros);
echo "<br>";
echo "Da sessão: <br>";
var_dump($_SESSION['books']);
}
?>
<form action="#" method="POST">
<label for="name">Name:</label>
<input type="text" name="name" id="name">
<button type="submit">Enviar</button>
</form>
Book.class.php
<?php
class Livro
{
public $livros;
function __construct(){
session_start();
if(empty($_SESSION['livros']))
$_SESSION['livros'] = [];
$this->livros = $_SESSION['livros'];
}
function add($nome){
array_push($this->livros, [$nome]);
}
}