PHP編程學習:“===”與“==”的區別

// ===,全等於,必須是變來那個的類型相等,
// 並且值也相等,才是全等於,如果有一項不同,全等於不成立。




// ==,等於,並不要求變量的類型必須相等,
// 但是在運算的過程中,如果是不同類型的比較,PHP會把變來那個轉換成一致的類型,
// 之後再作比較。

類型的轉換:

布尔值
//
// 当转换为 boolean 时,以下值被认为是 FALSE:
//
// 布尔值 FALSE 本身
--------------------------------------------------------------------------
// 整型值 0(零)
// 浮点型值 0.0(零)



if (0==true) {
  echo "整形零等于true";
}else {
  echo "整形零不等于true";
}
echo "<br/>";

// 結果是整形零不等于true

if (0.0==true) {
  echo "浮點零點零等于true";
}else {
  echo "浮點零點零不等于true";
}
echo "<br/>";

// 結果是浮點零點零不等于true

if (0.0002==true) {
  echo "0.0002等于true";
}else {
  echo "0.0002不等于true";
}
echo "<br/>";

// 結果是0.0002等于true





-----------------------------------------------------------------------------------------------

// 空字符串,以及字符串 "0"


if ("0"==true) {
  echo "零字符串等于true";
}else {
  echo "零字符串不等于true";
}
echo "<br/>";
// 結果是"零字符串不等於true"

if ("0.0"==true) {
  echo "零點零字符串等于true";
}else {
  echo "零點零字符串不等于true";
}
echo "<br/>";
// 結果是"零點零字符串等於true"



-----------------------------------------------------------------------------------
// 不包括任何元素的数组
// 特殊类型 NULL(包括尚未赋值的变量)
// 从空标记生成的 SimpleXML 对象。
// 所有其它值都被认为是 TRUE(包括任何资源 和 NAN)。

----------------------------------------------------------------------------

// Warning
// -1 和其它非零值(不论正负)一样,被认为是 TRUE!



if (-5==true) {
  echo "-5等于true";
}else {
  echo "-5不等于true";
}
echo "<br/>";

//結果是-5等于true

---------------------------------------------------------------------

// 當整形數字為0時,等於就會把0轉換成布爾值false,
// 這時就出現結果“沒找到”,但是數字0本身是存在的,不是false,
// 那就需要用全等於來比較。


$res=0;
if ($res==false) {
  echo "沒找到";
}else {
  echo "找到了";
}
echo "<br/>"; 

結果是 “沒找到”

$z=0;
if ($z===false) {
  echo "沒找到";
}else {
  echo "找到了";
}
echo "<br/>";

結果是“找到了”


--------------------------------------------------------------------------------------------------------------------

// 2、 字符串 ---> 数字的转换
//
// 从字符串左端开始找数字,直到第一个非数字结束,
// 取出来的这一部分,即是转换后的值。
// "3q"--->3
// "ewfdwdwfedw3333"---> 0

Post a Comment

0 Comments