Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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,fgvhbjnkmemail data status endereco
object**(Paciente)[1]
private 'id'
private 'id_plano'
private 'nome' (length=25)
private 'email'
private 'data_nascimento'
private 'status'
private 'endereco'
>
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"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).>
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
>
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.
>
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.>
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.
>
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.
>
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.
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.
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
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.
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.
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
>
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?
@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
>
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.
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
>
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.
>
21 minutos atrás, Ana Gauna disse:
Esperiência, eu já vi acontecer, e com arquivo importante do setor de contabilidade. Salvação, tinha backup.
Não é pq duas coisas acontecem ao mesmo tempo, que uma foi causa da outra.
Até Einstein precisou comprovar sua teoria por meio de dados, com todo o respeito, sua experiencia não é um dado técnico, e você sendo da área, não deveria argumentar dessa forma.
>
1 minuto atrás, EdCesar disse:
Não é pq duas coisas acontecem ao mesmo tempo, que uma foi causa da outra.
Até Einstein precisou comprovar sua teoria por meio de dados, com todo o respeito, sua experiencia não é um dado técnico, e você sendo da área, não deveria argumentar dessa forma.
Eu sei o que é um dado importante para um usuário, e eu sei o desespero que um usuário sofre quando perde todo o dado.
Dependendo do tipo de trabalho que está sendo desenvolvido, o usuário perder um dado (informação) é igual demissão,
se uma pessoa está trabalhando com um arquivo, e o arquivo se perde, e por isso o trabalho não é entregue ao chefe,
tem chefe que demite com a devida justa causa, principalmente se o trabalho tinha prazo para ficar pronto. Se eu sei
como fazer para evitar um problema, eu sempre tomo as minhas providências para anular os problemas antes de acontecer.
Eu já vi pessoas perderem seus arquivos no meu ex-emprego, eu já li técnicos perderem um disco rígido inteiro com
indormações dentro, em mensagens no fórum técnico do Technet. O que eu mencionei pode causar perda total da
informação, pode causar a perda total de um diretório. E se o computador está com voltagem instável perda total do
disco rígido. Eu sei por experiência própria o que tem que ser feito para ser evitado de ocorrer essa perda total...
Eu já vi anos atrás pessoas perderem total o arquivo ou o diretório que continha tudo o que estavam trabalhando.
A salvação dessas pessoas é, eu presteu atenção neles, eu fiz um backup de tudo, e sem eles saber, tinha backup.
mas isso não tem nada a ver com os espaços e pontos nos nomes. isso foi problema do hd e não dos nomes dos arquivos. como falei pode ser que o disco já tivesse problemas de setores defeituosos ou uma falha na corrente tenha dado curto nele mas aí os nomes de arquivos e pastas não tem nada a ver com o caso
No meu ex-emprego foi chamado um eletricista anos atrás que colocou um multimetro medindo a tomada elétrica durante uma semana inteira, ele fazia anotações de hora em hora, nessa época com isso, foi detectado variação de energia na tomada elétrica, e se assumiu como sendo uma das causas dos problemas terem ocorrido.
O que eu disse de problema com arquivo e diretório contendo acentos, cedilha, espaço, costuma dar problema depois.
Eu já vi pessoas perderem tudo o que estava trabalhando. Tinha backup. Eu voltei com o que tinham perdido, e eu alterei
o nome do arquivo e eu alterei o nome do diretório, para o que eu acho o correto, e eles nunca mais tiveram esse tipo de problema novamente. Depois que perderam um trabalho, eles pararam de cirmar em fazer o que dizia que não era para fazer.
>
2 minutos atrás, marsolim disse:
mas isso não tem nada a ver com os espaços e pontos nos nomes. isso foi problema do hd e não dos nomes dos arquivos. como falei pode ser que o disco já tivesse problemas de setores defeituosos ou uma falha na corrente tenha dado curto nele mas aí os nomes de arquivos e pastas não tem nada a ver com o caso
Ok. Então faz como você quer. Quando perder total algum trabalho... Eu vou dizer... Eu falei para não fazer.
@Ana Gauna Não duvido da sua atenção com o usuário, que inclusive acho muito bacana, também não duvido das suas experiências de trabalho. Essas experiências certamente ajudam a dar um norte, mas não são validas como dados técnicos, principalmente para esse caso em especifico, no contexto do PHP, como o @Williams Duarte bem explicou, foi apenas para isso que chamei a atenção.
Olá!
Em setEndereco() e vários outros methods você está alterando a variável $this->nome