Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lady01

Getters e Setters de classe não funcionam adequadamente

Recommended Posts

Estou tentando manipular uma classe com seus getters e setters e não estou conseguindo. Tentando explicar melhor: Eu setto cada atributo do objeto dessa classe, depois dou echo neles e não imprime o esperado, também não exibe erro nenhum. Alguém já passou por isso? Ou será que mudou algo dessa parte e eu não estou sabendo?

A classe:

<?php
class Paciente
{
    private $id;
    private $id_plano;
    private $nome;
    private $email;
    private $data_nascimento;
    private $status;
    private $endereco;
     public function Paciente() {
         }
    
     public function getId(){
        return $this->id;
    }
    public function setId($id){
        $this->id = $id;
    }
     public function getId_Plano(){
        return $this->id_plano;
    }
    public function setId_Plano($id_plano){
        $this->id = $id_plano;
    }
     
    public function getNome(){
        return $this->nome;
    }
    public function setNome($nome){
        $this->nome = $nome;
    }
     public function getEmail(){
        return $this->email;
    }
    public function setEmail($email){
        $this->nome = $email;
    }
     public function getData_nascimento(){
        return $this->data_nascimento;
    }
    public function setData_nascimento($data_nascimento){
        $this->nome = $data_nascimento;
    }
    public function getStatus(){
        return $this->status;
    }
    public function setStatus($status){
        $this->nome = $status;
    }
    public function getEndereco(){
        return $this->endereco;
    }
    public function setEndereco($endereco){
        $this->nome = $endereco;
    }
    
    
}
?>

O teste:

include('Paciente.class.php');
$paciente = new Paciente();
$paciente->setId(1);
$paciente->setId_Plano(2);
$paciente->setNome('clarice');
$paciente->setEmail('clarice@gmail.com');
$paciente->setData_nascimento('04/12/2016');
$paciente->setStatus(1);
$paciente->setEndereco('Rua xcfgvhbjnkm,fgvhbjnkm');
echo "<br>id ".$paciente->getId();
echo "<br>idPlano ".$paciente->getId_Plano();
echo "<br>nome ".$paciente->getNome();
echo "<br>email ".$paciente->getEmail();
echo "<br>data ".$paciente->getData_nascimento();
echo "<br>status ".$paciente->getStatus();
echo "<br>endereco ".$paciente->getEndereco();
var_dump($paciente);

O que imprime:

id 2
idPlano 
nome Rua xcfgvhbjnkm,fgvhbjnkm
email 
data 
status 
endereco

object(Paciente)[1]
  private 'id'   
  private 'id_plano'  
  private 'nome'    (length=25)
  private 'email'  
  private 'data_nascimento'  
  private 'status'  
  private 'endereco'  

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, washalbano disse:

Olá!

Em setEndereco() e vários outros methods você está alterando a variável $this->nome

Já matou a questão. O famoso ctrl c + ctrl v sem atenção...

No próprio var_dump daria para perceber "Nome: Rua xkxkxkxkkxkfkkgkgk"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse  comando      include('Paciente.class.php');

 

deveria ser   include('Paciente-class.php');

 

porque o sistema operacional Windows e Linux identificam tudo depois do PONTO como sendo a extensão final de arquivo, ou seja: tudo depois do PONTO é o que identififica que tipo de arquivo ele é (no sistema operacional).

Compartilhar este post


Link para o post
Compartilhar em outros sites
8 horas atrás, Ana Gauna disse:

porque o sistema operacional Windows e Linux identificam tudo depois do PONTO como sendo a extensão final de arquivo, ou seja: tudo depois do PONTO é o que identififica que tipo de arquivo ele é (no sistema operacional).

Neste caso quem processa o arquivo php é o servidor, apache/nginx etc. Se você quiser, você pode até usar extensões falsas para coibir ataques, mas é uma das maneiras mais fracas de segurança.

 

Não sou usuário do RuinWindows, e nem tenho servidores usando esta plataforma, mas a identificação do arquivo, é sempre pelo ultimo ponto + extensão, tanto é que você pegar este arquivo Paciente.class.php e colocar um .docx no final

 

Citar

Paciente.class.php.docx

Vai abrir o LibreOffice no linux, acredito que no Windows o Word

Compartilhar este post


Link para o post
Compartilhar em outros sites
35 minutos atrás, Williams Duarte disse:

Neste caso quem processa o arquivo php é o servidor, apache/nginx etc. Se você quiser, você pode até usar extensões falsas para coibir ataques, mas é uma das maneiras mais fracas de segurança.

 

Não sou usuário do RuinWindows, e nem tenho servidores usando esta plataforma, mas a identificação do arquivo, é sempre pelo ultimo ponto + extensão, tanto é que você pegar este arquivo Paciente.class.php e colocar um .docx no final

 

Vai abrir o LibreOffice no linux, acredito que no Windows o Word

 
 

 

Eu já usei Linux, eu já comprei máquina com Linux instalado anos atrás, eu sei entrar no Linux, excluir a partição dele, formatar o disco rígido e instalar o Windows que eu adoro já tem dezenas de anos, no lugar do Linux...

 

Tanto o Windows como o Linux são sistema operacional. O sistema operacional entende que depois do PONTO se identifica a extensão de um arquivo, se identifica que tipo de arquivo ele é, e a qual software esse arquivo pertence.

 

Quando um arquivo tem o nome muito grande, ou quando o nome do arquivo tem muitos PONTOS, ou quando o nome do arquivo tem muita separação feita com espaços em branco, algumas vezes isso dá problemas, e esse arquivo para de funcionar.

 

No caso de nomes de diretório muito grandes e com muitos espaços em branco dentro do nome do diretório, algumas vezes um diretório também para de funcionar.

 

Esse problema de um nome de arquivo ou nome de diretório parar de funcionar, algumas vezes ocorre por problemas no disco rígido ou por problemas de falha de energia elétrica ou por problemas de falha causada por energia instável com variação.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
52 minutos atrás, Ana Gauna disse:

 

Tanto o Windows como o Linux são sistema operacional. O sistema operacional entende que depois do PONTO se identifica a extensão de um arquivo, se identifica que tipo de arquivo ele é, e a qual software esse arquivo pertence.

 

As coisas mudaram muito nos últimos tempos. rsrsrs

 

Programas interpretados, é independente de sistemas operacionais. Como o próprio nome já diz "interpretados", depende de interpretadores, queira você ou não. E seja em Ambiente Windows, Linux ou Unix.

 

52 minutos atrás, Ana Gauna disse:

Quando um arquivo tem o nome muito grande, ou quando o nome do arquivo tem muitos PONTOS, ou quando o nome do arquivo tem muita separação feita com espaços em branco, algumas vezes isso dá problemas, e esse arquivo para de funcionar.

 

No caso de nomes de diretório muito grandes e com muitos espaços em branco dentro do nome do diretório, algumas vezes um diretório também para de funcionar.

 

Esse problema de um nome de arquivo ou nome de diretório parar de funcionar, algumas vezes ocorre por problemas no disco rígido ou por problemas de falha de energia elétrica ou por problemas de falha causada por energia instável com variação.

 

 

Neste caso concordo.

 

Mas onde discordei, foi na questão dos includes.

 

10 horas atrás, Ana Gauna disse:

Esse  comando      include('Paciente.class.php');

 

deveria ser   include('Paciente-class.php');

 

porque o sistema operacional Windows e Linux identificam tudo depois do PONTO como sendo a extensão final de arquivo, ou seja: tudo depois do PONTO é o que identififica que tipo de arquivo ele é (no sistema operacional).

Neste caso tanto faz, com ponto ou com traço, a questão que essa nomenclatura .class era usada para determinar em uma pasta, que o arquivo era uma classe. Hoje em dia nem se usa mais isso, mas o que vale é o .php no final do arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites
9 horas atrás, Williams Duarte disse:

As coisas mudaram muito nos últimos tempos. rsrsrs

 

Programas interpretados, é independente de sistemas operacionais. Como o próprio nome já diz "interpretados", depende de interpretadores, queira você ou não. E seja em Ambiente Windows, Linux ou Unix.

 

Neste caso concordo.

 

Mas onde discordei, foi na questão dos includes.

 

Neste caso tanto faz, com ponto ou com traço, a questão que essa nomenclatura .class era usada para determinar em uma pasta, que o arquivo era uma classe. Hoje em dia nem se usa mais isso, mas o que vale é o .php no final do arquivo.

 
 
 

 

Sei que as coisas mudaram nos últimos 20 anos, eu vi, eu uso a internet desde 1995.

Continuo discordando.  Nome de arquivo é nome de arquivo.  Para não ter problemas depois o nome de um arquivo sempre tem que ter traço e não espaço e não ponto, idem nome de pastas, isso não sofreu nenhuma alteração nos ultimos 20 anos. Pessoas leigas em computação é quem mais tem o costume de deixar espaços ou pontos, que depois dão problema no diretório onde os arquivos estão gravados. 

Eu li a sintaxe desse comando include do PHP, ali dentro do parentese se coloca o nome do arquivo a ser chamado para ser executado.  Nome de arquivo o padrão é igual ha mais de 20 anos e não sofreu alteração.  Nome de arquivo e nome de diretório não pode conter acentos, não pode conter o til, não pode conter espaços, não pode conter PONTO. O PONTO identifica que o que vem depois é a identificação de que tipo de arquivo ele é.  Isso não sofreu alteração nenhuma nos últimos 20 anos. 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
28 minutos atrás, Ana Gauna disse:

Nome de arquivo é nome de arquivo.  Para não ter problemas depois o nome de um arquivo sempre tem que ter traço e não espaço e não ponto.

Desculpe, mas a maioria dos usuários aqui não são leigos, e muitos menos tem subserviência aos que acham que tem o gold hammer. Aconselho que use o fórum para se atualizar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nome de arquivo é nome de arquivo.  Para não ter problemas depois o nome de um arquivo sempre tem que ter traço e não espaço e não ponto.

Desculpe, mas a maioria dos usuários aqui não são leigos, e muitos menos tem subserviência aos que acham que tem o gold hammer. Aconselho que use o fórum para se atualizar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já dei suporte técnico a muito usuário leigo nos últimos 20 anos.  Eu já vi muita coisa que usuário leigo costuma fazer.

Nos últimos 20 anos a minha atenção o foco tem sido no hardware de servidor Windows, e no suporte a usuário de área de advocacia, contabilidade, administração e engenharia.  Mudei meu foco. Atualmente voltei a estudar programação.

Bom dia.  Bom domingo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse comando INCLUDE do PHP parece que ele sofreu alguma alteração com o HTML5 olha o que eu achei:

Ao que parece, pelo que eu entendi, o uso do parêntese no PHP é até o HTML4 

No HTML5 o código do PHP parou de usar o parêntese no comando INCLUDE.

 

http://php.net/manual/pt_BR/function.include.php

 

https://www.w3schools.com/php/php_includes.asp

 

http://www.phpbrasil.com/artigo/N_uhBooNEMIE/usando-include-no-php

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha nomes muito longos podem dar problemas mas os pontos não. o que importa é só o que vem depois do último ponto. se tu observares verá que até os arquivos do próprio windows vem muitos com 'nome do arquivo.2.1.0.exe' por exemplo. praticamente todos os grandes desenvolvedores de programas botam os nomes dos instaladores de seus produtos nesse formato nome.1.1.0.exe ou nome.1.1.2.zip e por aí afora. isso não é problema. até acentuação não é problema pois temos os urlencodes, urldecodes, htmlentitites e por ai afora que lidam com isso. eu concordo que é melhor evitar quando se está colocando eles online. eu sempre coloco sem espaço, sem acentuação e tudo em minúsuculo, nem traço gosto de usar, prefiro underline e em poucas situação mas chegar a ser um problema não chega exatamente. já no que se fala de arquivos locais que não vai ser acessado pelo browser o unico problema é o nome se muito grande, o resto não interfere nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Interfere sim.  É só ter uma alteração de voltagem no computador, que a pasta de diretório ou o arquivo com a caracteristica de ter ponto demais, ou espaço ou acento ou cedilha ou o til, essa pasta especifica ou arquivo, ele pára de funcionar de vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

pois eu nunca vi isso acontecer sério e uso windows há bastante tempo. pode ser que alguma vez aconteceu de perderem pasta ou arquivo devido a erro do próprio disco e acabaram ligando com espaço ou pontos nos nomes das pastas e arquivos porque se fosse assim a própria criadora do windows não usava nomes com espaços e vários pontos como eles usam

Compartilhar este post


Link para o post
Compartilhar em outros sites
57 minutos atrás, Ana Gauna disse:

Interfere sim.  É só ter uma alteração de voltagem no computador, que a pasta de diretório ou o arquivo com a caracteristica de ter ponto demais, ou espaço ou acento ou cedilha ou o til, essa pasta especifica ou arquivo, ele pára de funcionar de vez.


Poderia colocar suas referências técnicas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Ana Gauna Apesar que os padrões de Arquitetura de computadores serem os mesmos proposto pelo húngaro Von Neumann, até os dias de hoje, estamos na quinta geração de computadores com suporte a diversos unicode. Você está defendendo uma tese totalmente equivocada, sem base e sem fundamentos, e/ou com base no seu conhecimento em cima do WINDOWS. PHP é uma linguagem interpretada desenvolvida para vários ambientes UNIX/Linux/Windows etc. O que torna essa linguagem poderosa,  mesmo criticada por alguns Javazeiros e C++#eticistas. Mas ela não é default Windows.

Você esta querendo descer para baixo nível, C, e bater o martelo de ouro,  onde não se encaixa no fórum de PHP, pois isso já é outra linguagem, que realmente tem esses problemas de interpretação, mas não é o caso do PHP. 

Hoje estamos no PHP 7, Bem diferente do PHP/FI, há 20 anos atrás kkkkkkkkk
 

Compartilhar este post


Link para o post
Compartilhar em outros sites
30 minutos atrás, EdCesar disse:


Poderia colocar suas referências técnicas?

 

 

Esperiência, eu já vi acontecer, e com arquivo importante do setor de contabilidade.  Salvação, tinha backup.

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha por experiência também posso dizer que isso nada tem a ver com espaços e nem pontos no nome dos arquivos. como falei pode ser que eles estavam num setor com problemas no hd e esses problema do hd que causou isso porque espaços e pontos em nomes de arquivos e pastas não causa esse tipo de problemas. e a própria desenvolvedora do windows não usaria espaços e pontos se isso fosse problema, como falei antes hehehe

Compartilhar este post


Link para o post
Compartilhar em outros sites
6 minutos atrás, Williams Duarte disse:

@Ana Gauna Apesar que os padrões de Arquitetura de computadores serem os mesmos proposto pelo húngaro Von Neumann, até os dias de hoje, estamos na quinta geração de computadores com suporte a diversos unicode. Você está defendendo uma tese totalmente equivocada, sem base e sem fundamentos, e/ou com base no seu conhecimento em cima do WINDOWS. PHP é uma linguagem interpretada desenvolvida para vários ambientes UNIX/Linux/Windows etc. O que torna essa linguagem poderosa,  mesmo criticados por alguns Javazeiros e Ceticistas. Mas ela não é default Windows.

Você esta querendo descer para baixo nível, C, e bater o martelo de ouro,  onde não se encaixa no fórum de PHP, pois isso já é outra linguagem, que realmente tem esses problemas de interpretação, mas não é o caso do PHP. 

Hoje estamos no PHP 7, Bem diferente do PHP/FI, há 20 anos atrás kkkkkkkkk
 

 

 

@Williams Duarte  Eu estudei C, estudei Cobol, estudei Pascal na década de 80.  Na década de 90 eu estudei o SQL.  Eu nunca estudei o PHP.   Mas eu achei as rotinas PHP de IF THEM ELSE e as rotinas de WHILE o modo delas funcionar, quase igual ao PASCAL que eu estudei. Eu já fiz o download do PHP versão 7, mas eu ainda não instalei ele.  Comprei vários livros, ainda não terminei de ler.  Já tem anos que eu não uso este site do iMasters, não consegui fazer login no meu perfil mais velho que este.

Eu estou enferrujada para programar. Já tem muitos anos que eu não programo absolutamente nada.  Até o SQL eu sabia programar ele, mas eu já esqueci, estou relembrando tudo.  Eu já instalei o Microsoft SQL Express no meu computador e o IIS.

Eu não transformei a minha máquina em servidor, tenho que comprar em breve um computador novo para conseguir instalar uma coisa que eu quero experimentar e requer processador XEON de 4 ou 8 núcleos para poder funcionar direito.  Vou tentar criar algo com PHP durante a semana.  E vou testar alguns códigos que eu achei aqui no iMasters.  Eu me esqueci de muita coisa do que se refere a programação, mas eu tenho meus livros, eu tenho minhas apostilas, eu vou me lembrar de novo.

O senhor gosta do Linux.  Eu adoro retirar o Linux dos meus computadores, e colocar o Windows. Mas, tudo bem, tá?

Bom dia.  Bom domingo.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.