允许的强制转换有:
- (int), (integer) - 转换为 整型(integer)
- (bool), (boolean) - 转换为 布尔型(boolean)
- (float), (double), (real) - 转换为 浮点型(float)
- (string) - 转换为 字符串(string)
- (binary) - 转换为二进制 字符串(string) (PHP 6)
- (array) - 转换为 数组(array)
- (object) - 转换为 对象(object)
- (unset) - 转换为 NULL (PHP 5)
类型转换也可以用settype()函数
$foo = "5bar"; // string
$bar = true; // boolean
settype($foo, "integer"); // $foo 现在是 5 (integer)
settype($bar, "string"); // $bar 现在是 "1" (string)
bool型
print 'yes'."\t".((bool)'yes'? 1: 0)."\n"; //yes 1
print 'true'."\t".((bool)'true'? 1: 0)."\n"; //true 1
print 'no'."\t".((bool)'no'? 1: 0)."\n"; //no 1
print 'false'."\t".((bool)'false'? 1: 0)."\n"; //false 1 false被认为是一个字符串
print '1'."\t".((bool)'1'? 1: 0)."\n"; //1 1
print '0'."\t".((bool)'0'? 1: 0)."\n"; //0 0
print '0.0'."\t".((bool)'0.0'? 1: 0)."\n"; //0.0 1 0.0不被认为是0而是一个字符串 所以是1
print ''."\t".((bool)''? 1: 0)."\n"; // 0
int型
bool型转int型:FALSE
将产生出 0(零),TRUE
将产生出 1(壹)。
echo (int) ( (0.1+0.7) * 10 ); // 显示 7!
出现上述结果是PHP的浮点型精度问题