我剛碰到一個應用程序的問題,其中查詢返回一個字符串,但有時返回值爲「0」作爲一個合法的字符串。這打破了我的應用程序的邏輯,我找不到修復程序。我在手冊中發現它爲什麼會發生:http://www.php.net/manual/en/language.types.boolean.phpPHP:可以將字符串「0」明確地轉換爲字符串嗎?
我使用PHP 5.5.10,通常所有字符串值都會轉換爲布爾值(true)....我在手冊中發現了可以將變量明確地轉換爲一個字符串。我加入了一些邏輯來做到這一點,但也失敗了。
<?php
$str1 = "0";
//Below explicitly casts the string but it will still bool(false)
$str2 = (string) "0";
var_dump($str1);
var_dump((bool) $str1);
var_dump($str2);
var_dump((bool) $str2);
?>
上述測試會告訴你,即使是顯式類型轉換不會讓這個字符串「TRUE」,因爲在一個布爾值。下面是我的問題的地方...
<?php
if($str)
{
//String is initialized, CODE to rip string is here
} else {
//Code for variable not initialized: NOTE: "0" or '0' will execute here!
}
?>
我可以以某種方式迫使PHP查看字符串'0'或'0'以布爾方式投射TRUE嗎?
我完全理解,一個整數值,0是假的,但串東西扔我...曲線
的http://stackoverflow.com/questions/2382490/how-does-true-false-work-in-php – RiggsFolly
我懂規矩可能的複製,我的問題是關於明確鑄件。我做了一個搜索,但還沒有找到它。 – Zoul007
[嚴格比較](http://stackoverflow.com/a/589558/1064767):'$ zero =「0」; if($ zero){/ * wrong * /}; if($ zero ===「0」){/ * right * /};'我認爲這是[XY問題]的一個例子(http://meta.stackexchange.com/a/66378/220891)。你的任務*實際上*試圖完成什麼? – Sammitch