защо дават различен резултат

peter2222

Registered
<?php
$a='false';
$b=(boolean)$a;
var_dump($b);
?>


<?php
$a=false;
$b=(boolean)$a;
var_dump($b);
?>

:)

защото второто - false е текст а НЕ Е във скоби (както би трябвало)?
 
В случая false е ключова дума на PHP и стойноста е от тип boolean, така че не е нужно да е в кавички. Това, което се опитваш да направиш е да кастнеш променливата към даден тип данни и мисля, че когато е в кавички винаги ще е true независимо от текста, защото превръщаш тип string в boolean.
 
Въпреки, че горният отговор е напълно верен, все пак ще ти дам и този линк:
http://www.php.net/manual/bg/language.types.boolean.php#language.types.boolean.casting

Т.е:

(boolean)$string

ще върне FALSE единствено ако $string e 0 или празен :) Т.е дори стрингът 'false' ще върне true като резултат. Виж и примерите в линка, който ти дадох :)
 

Back
Горе