[PHP] leading zero in Integers zonder quotes in var

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 13:39
Ik was zojuist php.net aan het doorspitten op functies en dergelijken en ze meteen uittesten, en nu stuitte ik op iets geks...

$getal = 4;
echo $getal; // geeft als output "4". ok ok, kinderspel... :)

als ik nu dit doe:

$getal = 04;
echo $getal; // geeft ook als output: "4" :)

Maar als ik nu dit doe:

$getal = 040;
echo $getal; // geeft als output: "32" |:(

$getal = 011;
echo $getal; // geeft als output: "9" :r

Meerdere nullen voor het getal maakt geen verschil vergeleken met één enkele 0.
Wat moet ik hiermee, en waar ligt dit aan...
Is een 0 voor het getal (voor de komma) toch niet zo onschuldig als het in onze rekenkunde lijkt?

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Leading 0 maakt een interger Octaal (8 talig stelsel)

zie:
http://nl2.php.net/manual/en/language.types.integer.php

[ Voor 39% gewijzigd door LuCarD op 04-07-2003 14:37 . Reden: url toegevoegd ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:36

Creepy

Tactical Espionage Splatterer

Cheater schreef op 04 July 2003 @ 14:34:
Ik was zojuist php.net aan het doorspitten op functies en dergelijken en ze meteen uittesten, en nu stuitte ik op iets geks...

$getal = 4;
echo $getal; // geeft als output "4". ok ok, kinderspel... :)

als ik nu dit doe:

$getal = 04;
echo $getal; // geeft ook als output: "4" :)

Maar als ik nu dit doe:

$getal = 040;
echo $getal; // geeft als output: "32" |:(
Octaal ;)
$getal = 011;
echo $getal; // geeft als output: "9" :r
Ook Octaal.. oftewel, het Octale tallenstelsel, net zoals dat er een hexadecimaal, binair en decimaal is (probeer bijvoorbeeld eens 0xFF ;) ).

Meerdere nullen voor het getal maakt geen verschil vergeleken met één enkele 0.
Wat moet ik hiermee, en waar ligt dit aan...
Is een 0 voor het getal (voor de komma) toch niet zo onschuldig als het in onze rekenkunde lijkt?[/quote]
0,12 zal je gewoon 0,12 opleveren hoor. Maar als je gehele getallen wilt afdrukken met 1 of meerdere voorloop nullen dan zul je moeten zoeken naar format number functies.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Creepy schreef op 04 juli 2003 @ 14:37:
Maar als je gehele getallen wilt afdrukken met 1 of meerdere voorloop nullen dan zul je moeten zoeken naar format number functies.
printf en sprintf om precies te zijn

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 13:39
Dus hier ZOUDEN newbies de fout mee in kunnen wandelen als ze geen quotes gebruiken bij getallen. Ik gebruikte zoiezo altijd WEL quotes. Afijn, kunnen we een linkje naar de post plaatsen als iemand een fout als deze maakt ;)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Cheater schreef op 04 July 2003 @ 14:40:
Dus hier ZOUDEN newbies de fout mee in kunnen wandelen als ze geen quotes gebruiken bij getallen. Ik gebruikte zoiezo altijd WEL quotes. Afijn, kunnen we een linkje naar de post plaatsen als iemand een fout als deze maakt ;)
Je moet gewoon geen getallen met een 0 beginnen, dat slaat tenslotte nergens op :)

Acties:
  • 0 Henk 'm!

  • eborn
  • Registratie: April 2000
  • Laatst online: 16-09 09:14
ACM schreef op 04 July 2003 @ 14:47:
Je moet gewoon geen getallen met een 0 beginnen, dat slaat tenslotte nergens op :)
Precies :) Vanaf dat moment is het sowieso geen (decimaal) getal meer. Hetzelfde geldt voor het gebruik van quotes rond getallen. Maar goed, daar PHP alles on-the-fly converteert vergeten sommige mensen dat wel eens ;)

[ Voor 9% gewijzigd door eborn op 04-07-2003 14:55 ]


Acties:
  • 0 Henk 'm!

  • Cheater
  • Registratie: Januari 2001
  • Laatst online: 13:39
yap. nou ok, ik wist niet dat het dan decimale getallen werden. ik verheugde me er ook niet op dat ik een fout zou vinden, want het liefst zie ik PHP foutloos. Het is immers al niet altijd even makkelijk om alles te begrijpen.
Pagina: 1