类型转换
-
PHP在编程语言中属于 弱类型语言
C 在编程语言中属于 强类型语言 -
强类型语言: 每声明一个变量,都需要先说明是哪个类型
弱类型语言: 声明一个变量时, 不需要指定数据类型 -
类型转换:
-
自动类型转换 (隐式转换)
-
bool -> int
true -> 1
false -> 0
-
bool -> float
true -> 1.0
false -> 0.0 -
string -> int
string -> float
保留第一个字母之前的数字, 抛弃第一个字母及后面所有字符 (除了 第一个. 和第一个e 之外) -
int -> float
整数当小数算
-
-
强制类型转换
- 临时转换
- 通过 运算符 来转换
(int)变量
(float)变量
(string)变量
(bool)变量
(array)变量
(object)变量 - 通过 函数 来转换
intval(变量)
floatval(变量)
boolval(变量)
strval(变量)
- 通过 运算符 来转换
- 永久转换
settype(变量, 类型)
- 临时转换
-
<?php
error_reporting(0);
var_dump( true + 10 ); // 11 true -> 1
var_dump( false + 10); // 10 false-> 0
var_dump( true + 10.5 ); // 11.5 true -> 1.0
var_dump( false + 10.5 );// 10.5 false -> 0.0
echo '<hr>';
// 保留第一个字母之前的数字, 抛弃第一个字母及后面所有字符 (除了 第一个. 和第一个e 之外)
var_dump( '100' + 200 ); // 300 '100' -> 100
var_dump( 'abc' + 200 ); // 200 'abc' -> 0
var_dump( '1a2b3c' + 200); // 201 '1a2b3c' -> 1
var_dump( 'a1b2c3' + 200); // 200 'a1b2c3' -> 0
echo '<hr>';
var_dump( '10.5' + 200 ); // 210.5 '10.5' -> 10.5
var_dump( 'a.b' + 200 ); // 200 'a.b' -> 0
var_dump( '10a.b' + 200 ); // 210
var_dump( '10.5a' + 200 ); // 210.5
var_dump( '1.2.3' + 200 ); // 201.2
var_dump( '2e3' + 200 ); // 2200
var_dump( '2e3e4' + 200 ); // 2200
var_dump( '2.5e3' + 200 ); // 2700
echo '<hr>';
var_dump( 10 + 0.5 ); // 10.5
?>
<?php
$str = '落霞与孤鹜齐飞,秋水共长天一色';
var_dump( $str );
var_dump( (int)$str );
var_dump( (float)$str );
var_dump( (string)$str );
var_dump( (bool)$str );
var_dump( (object)$str );
var_dump( (array)$str );
// var_dump( (resource)$str );
// var_dump( (null)$str );
echo '<hr>';
var_dump( $str );
var_dump( intval($str) );
var_dump( floatval($str) );
var_dump( boolval($str) );
var_dump( strval($str) );
var_dump( $str );
echo '<hr>';
$str = '落霞与孤鹜齐飞,秋水共长天一色';
settype($str, 'int');
var_dump($str);
settype($str, 'string');
var_dump($str);
?>