Was ist ein "bool" bzw. "boolischer Wert"

SugarFairy

abgemeldet
23 April 2006
690
58
Hallo.

In meinem PHP Buch wird dauernd was von is_bool boolischer Wert und boolean!

Was zum Deibel is ein bool? Bitte erklärt es mir. Bei php.net hab ich nix aufschlüssiges gefunden :(
 
$bool = TRUE;
$bool = FALSE;

Ein Typ der genau 2 Werte anehmen kann, nämlich wahr oder falsch.

https://php.net/is_bool schrieb:
is_bool -- Prüft, ob eine Variable vom Typ bool ist
Die Funktion um auf den Typ zu prüfen; liefert auch wieder einen boolean Wert zurück.
 
DocTrax schrieb:
$bool = TRUE;
$bool = FALSE;

Ein Typ der genau 2 Werte anehmen kann, nämlich wahr oder falsch.


Die Funktion um auf den Typ zu prüfen; liefert auch wieder einen boolean Wert zurück.

Könntest du mir ein Beispiel für eine bool Funktion geben!?
 
evident schrieb:
Beispiel: is_string();
https://de.php.net/manual/de/function.is-string.php

Diese Funktion prüft, ob eine Variable ein String ist. Wenn ja, gibt sie als Typ true zurück, wenn nicht: false.

Letztendlich überprüfen kannst das mit:

if($bedingung==true) {...}
oder einfach
if($bedingung) {...}

-Flori-

Sprich bool ist einfach nur eine andere Art vom if Befehl? Wenn ja werde ich dieses ja erstmal noch nicht benötigen :)
 
Firethebird schrieb:
Könntest du mir ein Beispiel für eine bool Funktion geben!?
Sei B = {TRUE, FALSE} und IN = {x| x aus Z und x>0 }
f : IN -> B, f(x)=TRUE, wenn x\2=[x\2] oder f(x)=FALSE, wenn x\2<>[x\2]

Da hast eine Übersicht über die verschiedenen Typen:
https://www.php.net/manual/de/language.types.php

Firethebird schrieb:
Sprich bool ist einfach nur eine andere Art vom if Befehl? Wenn ja werde ich dieses ja erstmal noch nicht benötigen :)
Nein! Ein "bool" ist ein Wert aus der Menge B.
 
Zuletzt bearbeitet:
Firethebird schrieb:
Könntest du mir ein Beispiel für eine bool Funktion geben!?
PHP:
function can_progg($username)
{
  if($username=="theHacker")
    return true;
  else
    return false;
}
Firethebird schrieb:
prich bool ist einfach nur eine andere Art vom if Befehl? Wenn ja werde ich dieses ja erstmal noch nicht benötigen :)
Falsch. bool ist ein Datentyp, der nur wahr oder falsch sein kann.
 
Diese Beispiel bringt mir recht wenig? Ich bräuchte ein Besipiel wo das bool direkt eingesetzt wird!

PHP:
function can_progg($username)
{
  if($username=="theHacker")
    return true;
  else
    return false;
}

In dieser Funktion wird nur geprüft ob der Username wahr oder falsch ist, aber was hat das mit bool zu tun? :(
 
Firethebird schrieb:
Diese Beispiel bringt mir recht wenig? Ich bräuchte ein Besipiel wo das bool direkt eingesetzt wird!
[...]
In dieser Funktion wird nur geprüft ob der Username wahr oder falsch ist, aber was hat das mit bool zu tun? :(
Du wolltest eine bool-Funktion ;)
Der Rückgabewert dieser Funktion ist vom Typ bool.

Oder was wolltest du ? Du setzt bool indirekt in jeder if-Abfrage ein, weil PHP das auf if(true) oder if(false) reduziert.

Das is auch bool:
PHP:
echo (4==1); // false
 
Bis dahin hab ichs schon verstanden :)

Nur, wenn ich

<?
echo(is_bool(5==5));
?>


oder

<?
echo(is_bool(5==1));
?>


Gibt er jedesmal 1 aus!
 
theHacker schrieb:
Klar, es sind ja alles boolesche Werte ;)

Probier mal:
PHP:
echo is_bool("Du sicher ned !");
echo is_bool(123456);

Sagen wir es so! Ist garkeine Aufgabe gestellt kann er weder true noch false ausgeben, also ist das ein nicht boolischer wert. Umgekehrt ist es ein boolische wert? Right?
 
Firethebird schrieb:
Diese Beispiel bringt mir recht wenig? Ich bräuchte ein Besipiel wo das bool direkt eingesetzt wird!
Es gibt aber auch noch eine Algebra auf der Potenz-Menge von B mit den Operatoren UND und ODER für die gilt:
f: BxB -> B, f(x,y) = x ODER y
f(TRUE, FALSE) = f(TRUE, FALSE) = TRUE
f(TRUE, TRUE) = f(TRUE, TRUE) = TRUE
f(FALSE, FALSE) = f(FALSE, FALSE) = FALSE

g: BxB -> B, g(x,y) = x UND y
g(TRUE, FALSE) = g(TRUE, FALSE) = FALSE
g(TRUE, TRUE) = g(TRUE, TRUE) = TRUE
g(FALSE, FALSE) = g(FALSE, FALSE) = FALSE

genauer?
https://de.wikipedia.org/wiki/Boolesche_Algebra
 
DocTrax schrieb:
Es gibt aber auch noch einen Ring auf der Potenz-Menge von B mit den Operatoren UND und ODER für den gilt:
f: BxB -> B, f(x,y) = x ODER y
f(TRUE, FALSE) = f(TRUE, FALSE) = TRUE
f(TRUE, TRUE) = f(TRUE, TRUE) = TRUE
f(FALSE, FALSE) = f(FALSE, FALSE) = FALSE

g: BxB -> B, g(x,y) = x UND y
g(TRUE, FALSE) = g(TRUE, FALSE) = FALSE
g(TRUE, TRUE) = g(TRUE, TRUE) = TRUE
g(FALSE, FALSE) = g(FALSE, FALSE) = FALSE

genauer?

Nicht sowas kompliziertes! :) Habs aber schon alles kapiert :)
 
Im Grunde liegst du richtig, mit der Annahme, dass bool was mit wahr oder falsch zu tun hat, denn dafür wird es meist verwendet.

so ist es im Prinzip in jeder if-Abfrage...

if($variable==true) { // Wenn Bedingung wahr ist, dann...
echo"is wahr!";
}
if($variable==false) { // Wenn Bedingung falsch ist, dann...
echo"alles falsch!";
}


Ein Bool kann ja nur den Wert true oder false haben, deshalb arbeitet man bei if-Abfragen auch oft mit "else"

if($variable==true) { // Wenn Bedingung wahr, dann tue...
echo"is wahr!";
} else { // sonst tue...
echo"alles falsch!";
}


Man muss nun allerdings nicht dieses $variable==true schreiben, da eine if-Abfrage dies automatisch tut. Es wird immer überprüft, ob eine Bedingung wahr ist.

if($variable) {
echo"is wahr!";
}


Wenn du nun ein "!" vor die Variable setzt, überprüft er nach dem Gegenteil:

if(!$variable) {
echo"alles falsch!";
}

Eine if-Abfrage überprüft also immer, ob das, was letztendlich innerhalb der Klammer steht am Ende zutrifft, auch z.B. hier:
if($variable<5) {
echo"ist kleiner als 5!";
}

Es wird also überprüft, ob das, was in der Klammer steht, zutrifft. Nehmen wir an, dass die $variable=2 ist. das if() überprüft dann folgendes:
2<5 -> wahre Aussage -> also tue: echo"...";

-Flori-
 
evident schrieb:
Eine if-Abfrage überprüft also immer, ob das, was letztendlich innerhalb der Klammer steht am Ende zutrifft, auch z.B. hier:
if($variable<5) {
echo"ist kleiner als 5!";
}
Ich nehm das mal und mach das damit:
PHP:
for($variable=0; $variable<=10; $variable++)
{
	$bool = ($variable<5);
	echo $variable." -- ";
	var_dump($bool); # Gibt Typ und Wert einer Variable aus
}
8)