PHP数据类型转换分为自动转换(隐式转换)和强制转换(显示转换),强制转换又分为临时转换和永久转换。

自动转换(隐式转换)
程序会根据上下文环境自动进行转换
其它类型转换成数值型

    1. true>-1
    2. false>-0
    3. null>-0
    4. 字符串以非法数值开始>-0
    5. 字符串以合法数值开始,一直取到第一个非法数值结束

其它类型转换成字符串型

  1. 数值型直接转换成数值本身
  2. true>-1
  3. false>-空字符串
  4. null>-空字符串
  5. 数组>-Array
  6. 资源>-Resource

其它类型转换成布尔型

  1. 0>-false
  2. 0.0>-false
  3. 空字符串“或者”或者“0”或者“0”>-false
  4. null>-false
  5. 空数组array()>-false
<?php
//其它类型转换成数值型
echo 1+2;//3
echo 1+2.3;//3.3
echo 1+true;//2 true>-1 
echo 1+false;//1 false>-0
echo 1+null;//1 null>-0
echo 1+"3xuxiaoke";//4 3xuxiaoke>-3
echo 1+"2a3b4c";//3 2a3b4c>-2
echo 1+"2e2a2c";//201 2e2a2c>-200  2e=2*10的平方
echo 1+"true";//1 "true">-0

//其它类型转换成字符串
echo "xuxiaoke"; //xuxiaoke
echo 123; //123
echo 2.34; //2.34
echo true; //1
echo false; //
echo null; //

//其它类型转换成布尔类型
//找出转换成布尔类型假的有哪些情况,其它都会转换成布尔类型的true
if (true) {
    echo "我在北京二环买一套别墅";
}else{
    echo "还是老老实实编码";
}

强制转换(显示转换)

<?php
//临时转换
$var = true;
var_dump($var);
$res = (int)$var;
var_dump($res);
var_dump((int)$var, (integer)$var);
echo "<br>";

//临时转换成浮点型
var_dump((float)$var, (double)$var, (real)$var);
echo "<br>";

$var = 3.6;
//舍掉小数部分
var_dump((int)$var, (integer)$var);
echo "<br>";

//临时转换成字符串型
$var = true;
var_dump((string)$var);
echo "<br>";

//临时转换成布尔类型
$var = "3xuxiaoke";
var_dump((bool)$var, (boolean)$var);
echo "<br>";

//临时转换成空
$var = "空";
var_dump((unset)$var);
echo "<br>";

//临时转换成数组
$var = 123;
var_dump((array)$var);
echo "<br>";

//临时转换成对象
$var = 12.3;
var_dump((object)$var);
echo "<br>";

//通过系统函数完成临时转换
$var = "3xuxiaoke";
$res = intval($var);
var_dump($res);
echo "<br>";

var_dump(floatval($var), doubleval($var));
echo "<br>";

echo "<hr/>";

//永久转换
//得到数据类型

$var = 123;

var_dump($var);
echo "<br>";

echo gettype($var);
echo "<br>";

$var = true;

echo gettype($var);
echo "<hr/>";

$var = 123;
var_dump($var);
echo "<br>";

settype($var, "boolean");
var_dump($var);
echo "<br>";

/*type 的可能值为:
“boolean” (或为“bool”,从 PHP 4.2.0 起)
“integer” (或为“int”,从 PHP 4.2.0 起)
“float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用)
"string"
"array"
"object"
“null” (从 PHP 4.2.0 起)*/

$var = "3xuxiaoke";
settype($var, "int");
var_dump($var);