Alguém pode me ajudar por favor? Está dando esse 'erro' mencionado abaixo, quando aperto o botão de gravar. Redireciona para outra página e dá esse erro
Warning: Undefined property: Pessoa::$telefone in C:\xampp\htdocs\ProvaLucasSantos\CadastroPessoas.php on line 28
Fatal error: Uncaught TypeError: implode(): Argument #1 ($pieces) must be of type array, string given in C:\xampp\htdocs\ProvaLucasSantos\DadosPessoa.php:15 Stack trace: #0 C:\xampp\htdocs\ProvaLucasSantos\DadosPessoa.php(15): implode(',', NULL) #1 C:\xampp\htdocs\ProvaLucasSantos\index.php(36): DadosPessoa->CriandoArquivo(Object(Pessoa)) #2 {main} thrown in C:\xampp\htdocs\ProvaLucasSantos\DadosPessoa.php on line 15
/*CadastroPessoas.php*/
<?php
require_once('Contatos.php');
class Pessoa {
public $nome;
public $cpf;
public $telefones = array();
public function __construct( $nome, $cpf, $telefones)
{
$this->nome = $nome;
$this->cpf = $cpf;
$this->telefones = $telefones;
}
public function getNome()
{
return $this->nome;
}
public function getCpf()
{
return $this->cpf;
}
public function getTelefones()
{
return $this->telefone;
}
}
/*Contatos.php*/
<?php
class Telefones
{
public $telefones;
public $descricao;
public function __construct($telefone,$descricao)
{
$this->telefone = $telefone;
$this->descricao = $descricao;
}
public function getTelefones()
{
return $this->telefone;
}
public function getDescricao()
{
return $this->descricao;
}
public function toString(){
return "$this->telefone - $this->descricao";
}
}
/*DadosPessoa.php*/
<?php
require_once('CadastroPessoas.php');
require_once('Contatos.php');
class DadosPessoa
{
function __construct(){
}
public function CriandoArquivo(Pessoa $pessoa)
{
$arquivoaberto = fopen('Projeto.txt',"a");// a é somente pra escrita; cria txt Projeto
$celulares = implode(",", $pessoa->getTelefones()); // array pra string
fwrite($arquivoaberto, $pessoa->getNome() . "->" . $pessoa->getCpf() . "->" . $celulares. "\n"); // escrevo no arquivo
fclose($arquivoaberto);
}
public function LeArquivo(){
$usuario = array(); // vai guardar os objetos
$arquivoaberto=fopen('Projeto.txt',"r"); // r pra leitura
//$arq= file('C:\xampp\htdocs\Projeto\arquivo.txt'); // salva cada linha em $arq, não vai dar certo porque puxa caminho
while(!feof($arquivoaberto)){
$arq=fgets($arquivoaberto);
$novoarq = explode ("->", $arq); // string em vetor
if(!empty($arq)){
$nome=$novoarq[0]; // primeiro indice do vetor é sempre nome
$cpf=$novoarq[1]; // segundo é cpf
$celnovo = explode(",", $novoarq[2]); // string dos telefones em vetores
$usuarioNovo = new Pessoa($nome, $cpf, $celnovo);
$usuario[]=$usuarioNovo;
}
}
return $usuario;
}
}