Wie handelt PHP den Wert "false"?

redX

Erfahrenes Mitglied
Wie das Topic schon sagt, wie handelt PHP den Wert false?
Ich frag mich das einfach, da nichts ausgegeben wird, wenn ich die Variable anzeigen möchte.

Ich möchte einfach den Wert true oder false in die DB speichern. Aber false steht dort niemals drin:

PHP:
			DB::query("
				INSERT INTO `arena_event_history` (
					`id` ,
					`turn` ,
					`fs_arena_users` ,
					`location` ,
					`creation_time` ,
					`params`,
					`completed`
				) VALUES (
					NULL,
					'" . Event_History::$turn . "',
					'" . $_SESSION["loginUser"] . "',
					'" . $this->getLocationName() . "',
					'" . $this->getCreationTime() . "',
					'" . $this->paramsToString() . "',
					'" . $this->isCompleted() . "'
				)
			");

Also das $this->isCompleted gibt mir entweder true, oder nichts zurück.

Sogar das gibt mir nichts aus:
PHP:
	$myVar = false;
	echo "save! [" . $myVar . "]";

Wieso gibt das einfach nichts aus und nicht false? *sich am Kopf kratz*

PHP Version: 5.1.2

Gruss
X
 
Wenn du einen String in einer Variable speichern willst, dann musst du ihn mit Anführungszeichen oder Semikolon als String markieren...
PHP:
$myVar = "false";
    echo "save! [" . $myVar . "]";

Wenn du einfach nur $myVar = false; schreibst, wird die Variable 'gelöscht', arbeitet also wie die PHP Funktion unset().

PHP:
<?php
error_reporting(E_ALL);

$test = true;

if($test) echo "test: ".$test;

?>
Wenn ich das teste, kommt übrigens nur das hier raus:
PHP:
test: 1
Funktioniert also auch nicht ganz so wie du es willst, würde ich sagen.
 
Zuletzt bearbeitet:
Der Boolesche Typ beschreibt nur einen Wahrheitswert. Daher gibt es bei Ausgaben dieses Typs auch nicht etwa „true“ oder „false“ ausgegeben. MySQL hat übrigens auch keinen booleschen Spaltentyp.
 
Hmm, ich hatte es so getestet

PHP:
<?php
$test = false;

if($test) echo "test: ".$test;

?>

Und da wird gar nichts ausgegeben... Vielleicht habe ich da etwas vorschnell geurteilt.
 
Hallo,

if prüft nicht, ob eine Variable gesetzt ist oder nicht, sondern ob der Wert des Ausdrucks true oder false ist (notfalls auch mit Casting). Eine nicht gesetzte Variable wird dabei als false interpretiert und nebei wird eine Notice geworfen („Undefined variable“).

Grüße,
Matthias
 

Neue Beiträge

Zurück