Forum: PC-Programmierung Definition von "false"


von John (Gast)


Lesenswert?

Hi,

ich habe gerade festgestellt, dass ein von mir in PHP genutztes ORM die 
als tinyint(1) in der MySQL Datenbank gespeicherten Boolean-Werte nicht 
so wie dprt gespeichert ausliest, sondern für false einfach nur den 
array-key ohne wert bereitstellt. Für true wird dann der array-key mit 
dem klassischen Wert 1 verwendet.
PHP interpretiert die Werte z.B. in Bedingungen anscheinend nur dann 
korrekt, wenn man false anstatt 0 verwendet. Oder man castet mit (int), 
dann erhält man eine 0.

Ist das ein normales Verhalten bzw. was könnte der Sinn dahinter sein?

von c.m. (Gast)


Lesenswert?

php hat mehrere solcher fallstricke, für dein aktuelles problem:
http://%6Cmgtfy.com/?q=php+behaviour+boolean+null

ansonsten, lesenswert wenn du weiter php benutzen willst:
https://whydoesitsuck.com/why-does-php-suck/

allerdings muss man natürlich akzeptieren das jede sprache ihre 
eigenen fuckups hat :)

von Dirk D. (dicky_d)


Lesenswert?

John schrieb:
> Hi,
>
> ich habe gerade festgestellt [...]

Wie genau hast du das festgestellt?

von T.roll (Gast)


Lesenswert?

1
#define ("true", false, true);
2
#define ("false", true, true);

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.