Jump to content
Bobrinha

Problema com números int ao intanciar classe 0123 vira 83

Recommended Posts

Olá, estou com um probleminha desconhecido, ao criar uma instancia conforme mudo os valores os números no debug não são os mesmos o que poderia ser ou o que é?

 

class Conta {
    
    public $agencia;
    public $numero;
    public $saldo;

    function __construct($agencia, $numero, $saldo) {
        $this->agencia = $agencia;
        $this->numero = $numero;
        $this->saldo = $saldo;
    }
}

Ao realizar a intancia da classe exemplo abaixo

$conta = new Conta(043, 0123, 100);

no debug fica com outros números

public 'agencia' => int 35 
public 'numero' => int 83 
public 'saldo' => int 100

Vejo que não posso colocar números começando com 0 mais por que isso? e como colocar número começando com um ou mais zeros?

Share this post


Link to post
Share on other sites

Numéricos que iniciam com 0 são interpretados como sendo de base octal.

https://secure.php.net/manual/en/language.types.integer.php#language.types.integer.syntax

 

Se o seu número precisa de um 0 na frente, ele não é um número, é uma string. Visto que zeros à esquerda não possuem representação numérica.

  • +1 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Bruno Goedert Dalmolin
      Não consigo apresentar as palavras equivalentes conseguem me ajudar???
      O código é o seguinte: 
       
      #include <stdio.h>
      char equivale(int ddd){
          switch(ddd){
              case 61:
                  return "Brasilia";
                  break;
              case 71:
                  return "Salvador";
                  break;
              case 11:
                  return "Sao Palo";
                  break;
              case 21:
                  return "Rio de Janeiro";
                  break;
              case 32:
                  return "Juiz de Fora";
                  break;
              case 19:
                  return "Campinas";
                  break;
              case 27:
                  return "Vitoria";
                  break;
              case 31:
                  return "Belo Horizonte";
                  break;
          }
      }
      int main(){
          int ddd;
          scanf("%d",&ddd);
          equivale(ddd);
          printf("%d",equivale(ddd));
      }
    • By Rodymb
      Bom dia!
       
      Preciso fazer um update em um campo do tipo  int de uma tabela para corrigir o horário e a informação que estou buscando está em um campo do tipo datetime de outra tabela. Fiz um update da seguinte forma:
       
      update zan_m00 set m00zc=(SELECT convert(varchar(11),dataemissao,114) FROM tab_nota_header where dataemissao between '2018-08-01 00:00:00' and '2018-08-01 23:59:59' and numpdv=111 and codloja=1 and numnota=74841) where m00af='2018-08-01' and m00za=1 and m00ac=111 and m00ad=69614
       
      Esse update retornou a seguinte mensagem:
      Falha ao converter o varchar valor '11:56:57:00' para o tipo de dados int.
       
      No lugar onde está varchar experimentei usar int, entretanto, ele faz o update somando todo o conteúdo do campo, também usei o CAST e o problema é o mesmo.
      Se eu fizer somente o select, ele retorna pra mim somente a hora, que é o que preciso, mas aí tem outro problema, no campo tipo int a hora é tudo junto 115657 e nesse select ele retorna 11:56:57.
       
      Existe alguma forma de fazer esse update da forma que preciso?
       
    • By TeixeiraRamos
      Tenho as páginas:
      "inserir.asp" , "lista.asp" e "gerencia-registro.asp". Essa páginas infelizmente criei mas só tem exemplo de campo varchar e date.
      Gostaria criar um campo tipo número "int".
       
      Inclui dois campos na tabela do banco de dados os dois como número "int" .
      Em "inserir.asp" tem os campos varchar, date e o int que entrei agora (mostrei todos os tipo), mas a dúvida é em pagina_inicial e pagina_final. 
      nome_editora = rs("nome_editora") data_inicio = rs("data_inicio") data_termino = rs("data_termino") pagina_inicial = rs("pagina_inicial") pagina_final = rs("pagina_final") no form
      <tr> <td>Pag.Inicial:</td> <td> <input name="FormPagInicial" size="15" maxlength="15" value="<%=pagina_inicial%>" /> </td> </tr> <tr> <td>Pag.Final:</td> <td> <input name="FormPagFinal" size="15" maxlength="15" value="<%=pagina_final%>" /> </td>  
      Na "lista.asp"
      <td><%=rs("pagina_inicial")%></td> <td><%=rs("pagina_final")%></td> Em "gerencia-registro.asp"
       
      sql = sql & "'" & Request.Form("FormNomeLivro") & "', " sql = sql & "'" & Request.Form("FormNomeAutor") & "', " sql = sql & "'" & Request.Form("FormNomeEditora") & "', " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataInicio") &"','%d/%m/%Y')" & ", " sql = sql & "STR_TO_DATE('" & Request.Form("FormDataTermino") &"','%d/%m/%Y')" & ", " sql = sql & " " & Request.Form("FormPagInicial") & ", " sql = sql & " " & Request.Form("FormPagFinal") & ", " Todos os campos, varchar, date estão funcionando corretamente, ou seja, inclusão, alteração.
      Somente esses dois campos FormPagInicial e FormPagFinal que não consigo fazer inclusão no banco de dados.
      Tentando incluir um novo registro mostra esse erro em:
       
       
       
      Tem alguma coisa errada. Já tentei alterar as aspas simples, compostas, mas nada...
       
      sql = sql & " " & Request.Form("FormPagInicial") & ", " sql = sql & " " & Request.Form("FormPagFinal") & ", "  
      Mas, para que criar dois campos números de página com tipo "int"?
      Desejo fazer calculo com os dos campos página inicial e final.
      Obrigado
       
       
       
       
       
       
       
       
    • By Levi de Moraes Cardoso
      Senhores(as) boa tarde,
       
      Criei uma tabela para as fichas técnicas de motos em meu site. Um dos campos nomeado VISA configurado como INT(255), mostra o número de views que aquela ficha técnica recebeu e é computado sempre que a página é acessada. Porém quando se chega a pouco mais de 4500 views, o campo volta a ficar zerado e começa a contar novamente. Aconteceu com vários registros. Existe uma forma mais correta de configurar este campo para que ele continue computando e não volte a zerar?  
    • By Gabrielvt14
      Olá pessoal,
       
      Estou começando a brincar com o PHP orientado a objetos, e me deparei com um  probleminha...
       
      Criei uma função bem besta pra retornar o ano atual...
       
      <?php class Ano { public function __construct() { return $ano = date('Y'); } } echo $ano = new Ano(); Quando dou echo no objeto da classe aparece a mensagem dizendo que o objeto da classe não pode ser convertido em string.
       
      Como eu faria para mostrar o retorno deste objeto na tela?
       
      Desde ja agradeço!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.