php中的简单问题
在此情况下,如果$u POST[“mont”]为07 输出为字符串和整数 但是如果$u POST[“mont”]是08 输出仅为字符串php中的简单问题,php,Php,在此情况下,如果$u POST[“mont”]为07 输出为字符串和整数 但是如果$u POST[“mont”]是08 输出仅为字符串 原因可能是什么数字的前导零表示八进制格式。八进制只能升到7,所以08是无效的。数字的前导零表示八进制格式。八进制只升到7,所以08是无效的。这是因为在PHP中,任何前面带有“0”的数字都被读取为八进制数,所以“07”实际上表示以8为基数的7,而不是以10为基数的7(尽管它们的数量相同)。因此,“08”被视为无效的八进制数,而不是作为数字读取。这是因为在PHP中,
原因可能是什么数字的前导零表示八进制格式。八进制只能升到7,所以08是无效的。数字的前导零表示八进制格式。八进制只升到7,所以08是无效的。这是因为在PHP中,任何前面带有“0”的数字都被读取为八进制数,所以“07”实际上表示以8为基数的7,而不是以10为基数的7(尽管它们的数量相同)。因此,“08”被视为无效的八进制数,而不是作为数字读取。这是因为在PHP中,任何前面带有“0”的数字都被读取为八进制数,因此“07”实际上表示以8为基数的7,而不是以10为基数的7(尽管它们的数量相同)。因此,“08”被视为无效的八进制,不能作为数字读取。两个原因:
php的一致性不是很棒吗?同样的问题也发生在JavaScript中。前导零的字符串被转换为八进制(以8为基数)数,因此“010”等于8,而不是“08”。php的一致性不是很好吗?同样的问题也发生在JavaScript中。带前导零的字符串被转换为八进制(基-8)数,因此“010”将等于8,而不是“08”。实际上PHP等于(“08”==010),因此它仍然可以被视为一个数字,PHP等于(“08”==010),因此它仍然可以被视为一个数字
<?php
$n1=$_POST['mont'];
echo $n1;
if($n1==07)
echo "numeric";
if($n1=="07")
echo "string";
if($n1==08)
echo "numeric";
if($n1=="08")
echo "string";
?>