<?php
$first=1+"\x10";
echo $first."<br>";
echo "ghyghost";
$first1=1+"\x35";
echo $first1."<br>"
?>
1和6呢,为什么啊,
$first=1+"\x10";
echo $first."<br>";
echo "ghyghost";
$first1=1+"\x35";
echo $first1."<br>"
?>
1和6呢,为什么啊,
$first=1+"\x10";
echo $first."<br>";
echo "ghyghost";
$first1=1+"\x35";
echo $first1."<br>";
$first2=1+"0x\x41\x31";
echo $first2."<br>";
?>
补充一下为什么是1,6,162啊,
======================
字符串转换为数值
当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值。 如果包括“.”,“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)
----------------------------------------------------------hexdec
(PHP 3, PHP 4, PHP 5)hexdec -- 十六进制转换为十进制
说明
number hexdec ( string hex_string )
返回与 hex_string 参数所表示的十六进制数等值的的十进制数。hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff,即十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。 hexdec() 将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。 echo hexdec("\x10");//output 0
echo hexdec("\x35");//output 5
echo hexdec("0x\x41\x31");//output 161
1+"5" =60x\x41\x31 其中 \x41转换换成ASCII值为A \x31转换后为1则字符串 "0xA1" 转换成10进制为1611+161 = 162