Ir para conteúdo
cezarq

Problema em chamar método dentro de um loop

Recommended Posts

Olá! Tenho uma classe instanciada e um método que retorna um array com informações. Tudo funciona bem se executo o método apenas uma vez, porém, se executo o método dentro de um loop while, só eh executado apenas uma vez, na segunda já apresenta erro na function.

$arq = new arquivo();
$cont = 0;
while ($cont < 2) {
   $texto = "arquivo" . $cont . ".txt";
   $tamanho = $arq->getSize($texto);
   $cont++;
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, washalbano disse:

Qual é o erro apresentado na function?

O que faz o método getSize?

Se for verificar o tamanho do arquivo, verifique primeiro, se o arquivo existe.
http://php.net/manual/pt_BR/function.is-file.php
http://php.net/manual/pt_BR/function.is-readable.php

O erro eh:

PHP Fatal error:  Uncaught Error: Call to a member function getSize

 

Os arquivos existem, eu os coloquei lá pra testes.

 

O método retorna um array com o tamanho do arquivo e o caminho.

Porem, se eu colocar o comando "$arq = new arquivo ();" dentro do loop, funciona certinho... Mas acredito que essa não seja a maneira correta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por LukasTrin
      Estou montando um website e gostaria de saber como faço para o usuário que acabou de deslogar ficar na mesma pagina ?
       
      por exemplo, na programação atual, ele clica em " Sair " e vai automaticamente para a index, independente de onde esteja.
      eu gostaria q ele permanecesse na mesma pagina em que estava
       
      programação q faz o mesmo deslogar...
       
      //essa é a navbar.php <li><a href="?sair=sim">Sair</a></li> // Esse é o logado.php if(isset($_GET['sair']) == "sim"){     $objUser->sairUsuario(); } //e esse é o usuarios.class.php public function sairUsuario(){ session_destroy(); header ('location: index.php '); }  
    • Por ment0r
      Bom dia amigos, tudo bem?
       
      Sou novo em POO e estou com algumas dificuldades.
      Tenho um método de uma classe que é bem simples, ele busca todos os campos da tabela USUARIO (Firebird 2.0) e retorna o array com elas. Só que a não consigo exibi-los com while.
       
      Sem o método eu faria:
      while($array = ibase_fetch_object($query)){ echo $array->ID; echo "<br>"; echo $array->ID; // E por aí vai... } public function selectAllUsers(){ $select = "select * from USUARIO"; $query = ibase_query($select); $array = ibase_fetch_object($query); return $array; } Só que com o array não consigo. Não sei como usar o while com esse array retornado.
       
      Por favor, se alguém puder me ajudar... serei grato.
      Um abraço a todos.
       
    • Por Falcon89
      Antes de minha dúvida, deixo algumas considerações:
      - Estou em nível de aprendizagem, então, talvez a idéia e o script possa parecer bem "amador"
      - A dúvida não corresponde nada a função ou biblioteca Date, o ano utilizado é ficticio, no caso começando no ano de valor 1;
      - A minha dúvida se relaciona a POO, a utilização do Python como ilustração é meramente ilustrativa.

       

      Vamos a dúvida:
      Então eu criei uma classe chamada tempo com atributo ano, e uma classe pessoa com apenas os atributos em questão, a data de nascimento e a idade. O que eu queria que acontecesse, se possivel, era que ao instanciar uma nova pessoa, ela pegasse o ano atual do objeto 'tempo' já instanciado, e jogasse como ano de nascimento, e já setasse a idade da pessoa, subtraindo o ano atual do objeto tempo pela data de nascimento, fica meio confuso para explicar vou tentar dar um exemplo:
      Supondo que criei o 'tempoObj', que tem o valor do 'tempoObj.ano=1', nesse periodo eu instancio um objeto 'pessoaObj', então eu queria que essa pessoa pegasse o valor do ano que no caso seria 1 e jogasse na "pessoaObj.data_nascimento"que agora teria o valor de 1 e ano atual que também seria o mesmo valor e já setando atravéz da subtração a 'pessoaObj.idade' como 0, em tempo de execução, chamando a funçao avancar_ano() umas 3 vezes, o valor do ano atual seria 'tempoObj.ano = 4', nesse caso a idade dessa pessoa teria que seria 3, porem ao passar "tempoObj.ano" como argumento para data de nascimento e ano atual, ele sempre irá passar o mesmo valor para ambos fazendo com que a idade sempre seja 0.
       Nesse caso existe alguma forma que o valor seja passado para o metodo data_nascimento, some ao instanciar a classe pessoa, e o que o valor recebido so ano do tempoObj seja correspondente ao ano que esta armazenado no tempoObj.ano no momento de execução.
      Já tentei varias formas e sempre chego na mesma, se ficou entendido a questão e se é que existe uma solução, alguém tem essa solução? Desde já agradeço, e peço desculpa se não fui tão claro ao apresentar o problema. 
    • Por dayenne
      Galera então é o seguinte, tenho um trabalho da faculdade para fazer porém ainda não entendo quase nada de java, to meio perdida no trabalho.
      o trabalho propoe que eu faça uma agenda de contatos, onde eu possa armazenar contatos, excluir contatos, pesquisa-los, edita-los, tudo isso usando 
      arquivos txt, porém não consigo de jeito nenhum sair da estaca 0, queria que você me orientasse melhor para que eu consiga flluir melhor os codigos.
       
    • Por rnicson
      Possuo um script que seleciona Eventos de acordo com o dia,porém quero implementar uma condição que selecione de acordo com uma coluna que criei chamada user.

       
      <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Event; use MaddHatter\LaravelFullcalendar\Facades\Calendar; class EventController extends Controller {        public function index()             {                 $events = [];                 $data = Event::all();                 if($data->count()) {                     foreach ($data as $key => $value) {                         $events[] = Calendar::event(                             $value->title,                             true,                             new \DateTime($value->start_date),                             new \DateTime($value->end_date.' +1 day'),                             null,                             // Add color and link on event                          [                              'color' => '#ff0000',                              'url' => 'pass here url and any route',                          ]                         );                     }                 }                 $calendar = Calendar::addEvents($events);                 return view('home', compact('calendar'));             } } Minha dúvida seria onde se encaixa essa condição?
       
      where user = ...
×

Informação importante

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