[PHP从小白到大牛]-006 PHP变量数据类型转换(自动类型转换)

507 阅读1分钟

自动类型转换和强制类型转换

  • 自动类型转换, 顾名思义, 类型是自动转换的, 不予要额外的代码
  • 强制类型转换, 需要使用代码, 有明显的转换过程

自动类型转换

  • $a = "1" + 123;

字符串连接符.

  • 不同于js, php的字符串连接符为.

其他类型转数字(自动类型转换)

echo 1 + true;
echo "\n";
echo 1 + false;
echo "\n";
echo 1 + null;
echo "\n";
echo 1 + "3king";
echo "\n";
echo 1 + '21a3b4c';
echo "\n";
echo 1 + '2a3b4c';
echo "\n";
echo 1 + '2e2a3b4c';
echo "\n";
echo 1 + 'true';
echo "\n";
echo 1 + array();
echo "\n";
echo 1 + fopen('1.txt','r+');
  • 你能总结出什么规律?
    • true => 1
    • false => 0
    • null => 0
    • 非法字符串 => 0
    • 合法字符串 => 一直取到非法的前一位

其他类型转字符串(自动类型转换)

echo '1'.true;
echo "\n";
echo '1'.false.'1';
echo "\n";
echo '1'.null.'1';
echo "\n";
echo '1'.array();

其他类型转布尔(自动类型转换)

  • if判断会自动转换成布尔值
$dream = true;
if($dream){
  echo '我在北京2环买一套小别墅';
}else{
  echo '还是老老实实的Coding吧';
}

其他类型转布尔值有什么特点? 试举例说明...

自动类型转换的总结如下...

小练习

单选题

以下PHP代码片段,运算结果正确的是()(选择一项)

A echo 1+true;   //输出结果为:1

B echo 1+false;   //输出结果为:0

C echo  1+'2e4b5f';   //输出结果为:3

D echo 2+'hello';   //输出结果为:2