注册 登录
编程论坛 PHP技术论坛

询问

黑七指王 发布于 2005-12-27 09:16, 1040 次点击
为什么
$foo = 5 + "10 Little Piggies"; // $foo是一个整数(15)
$foo = 5 + "10 Small Pigs"; // $foo是一个整数(15)
结果都是15呢
郁闷中img!
5 回复
#2
wleige2005-12-27 09:53

看看类型转换方面的知识

#3
黑七指王2005-12-27 11:02
$foo = 5 + "10 Little Piggies"; // $foo是一个整数(15)
$foo = 5 + "10 Small Pigs"; // $foo是一个整数(15)
中的Little Piggies,Small Pigs是什么意思啊?
#4
wleige2005-12-27 11:12

字符串转换为数值

当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值。

如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作 float 来求值。否则就被当作整数。

该值由字符串最前面的部分决定。如果字符串以合法的数字数据开始,就用该数字作为其值,否则其值为 0(零)。合法数字数据由可选的正负号开始,后面跟着一个或多个数字(可选地包括十进制分数),后面跟着可选的指数。指数是一个“e”或者“E”后面跟着一个或多个数字。

<?php
$foo
= 1 + "10.5"; // $foo is float (11.5)
$foo = 1 + "-1.3e3"; // $foo is float (-1299)
$foo = 1 + "bob-1.3e3"; // $foo is integer (1)
$foo = 1 + "bob3"; // $foo is integer (1)
$foo = 1 + "10 Small Pigs"; // $foo is integer (11)
$foo = 4 + "10.2 Little Piggies"; // $foo is float (14.2)
$foo = "10.0 pigs " + 1; // $foo is float (11)
$foo = "10.0 pigs " + 1.0; // $foo is float (11)
?>
#5
黑七指王2005-12-30 21:59
演示PHP的数据类型自动转换功能,即如果是数字类型的与字符串类型的相加,而且字符串类型中第一个字符为数字,则会将该数字转换为数字类型,剩下的字符就会被忽略,但是如果数字不是在第一个位置,则不会转换。如:1+“ABCC9”的结果就是1
引用斑竹的解释!!!!
#6
wangshaobo2005-12-31 08:52
wleige正解,我没有他解释得详细,忘记了最重要的一点就是e的问题
1