• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

boolean invert

aichingm

Mitglied
hi, wie der themen name schon sagt bin ich auf der suche nach einer funktion die einen boolean wert invertiert.

mir is klar das man das auch mit einem einfachen if-else-konstrukt machen könnte, aber ich suche was kompiliertes ;)

kennt jemand so eine funktion?

Mit besstem Dank Mario
 
Werbung:
tut mir leid aber das ist absolut nicht das was ich gesucht habe, bitte genauer lesen!
PHP:
var_dump(!false);
muss ich nicht mal versuchen. es ist allgemein bekkant das var_dump() zum darstellen von daten ist(ähnlich wie print_r()).

bitte lies dir doch mal die doku zu dem was du postest durch (PHP: var_dump - Manual).

also auf ein neues...

MfG Mario
 
Werbung:
crash ging es um den !-Operator. Den kannst du natürlich auch als Funktion verpacken, wenn du lustig bist:

PHP:
function invertBoolean($input) { return !$input; }

Das ist aber reichlich sinnfrei.

Vielleicht gibst du uns mal mehr Kontext.
 
es gibt keinen kontext. ich versuche nur meinen wissenshunger zu stillen.

ein beispiel wäre aber das ich eine datenbank habe in der es das feld bit[TINYINT(1)] gibt und ich alle daten sätze invertieren will(1er komplementär oder so, was auch immer).

ja ich könnte mir eine funktion schreiben aber ich suche ja etwas kompiliertes zwecks performance.

wenn es nur um das ! ging ist das beispiel mit var_dump() leider misslungen.

@crash tut mir leid falls sich mein post etwas böse rübergekommen ist war nicht so gemeint!!!

Mario

PS: php kennt keinen variablen type der vergleich mit einem bit ist oder?
 
Werbung:
aichingm schrieb:
ein beispiel wäre aber das ich eine datenbank habe in der es das feld bit[TINYINT(1)] gibt und ich alle daten sätze invertieren will(1er komplementär oder so, was auch immer).

Wenn du eine Spalte vom Typ UNSIGNED TINYINT hast, kannst du den Inhalt per „^ 255“ (bitweises XOR) binär invertieren.

Code:
mysql> select 255^255, 128^255, 0^255;
+---------+---------+-------+
| 255^255 | 128^255 | 0^255 |
+---------+---------+-------+
|       0 |     127 |   255 |
+---------+---------+-------+

Code:
mysql> set @bit = 128; select lpad(bin(@bit),8,'0') as orig, lpad(bin(@bit ^ 255),8,'0')  as inverted;
Query OK, 0 rows affected (0.00 sec)

+----------+----------+
| orig     | inverted |
+----------+----------+
| 10000000 | 01111111 |
+----------+----------+
1 row in set (0.00 sec)

mysql> set @bit = 255; select lpad(bin(@bit),8,'0') as orig, lpad(bin(@bit ^ 255),8,'0')  as inverted;
Query OK, 0 rows affected (0.00 sec)

+----------+----------+
| orig     | inverted |
+----------+----------+
| 11111111 | 00000000 |
+----------+----------+

PS: php kennt keinen variablen type der vergleich mit einem bit ist oder?

Boolean, wenn man so will.
 
Zurück
Oben