Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php中的简单问题_Php - Fatal编程技术网

php中的简单问题

php中的简单问题,php,Php,在此情况下,如果$u POST[“mont”]为07 输出为字符串和整数 但是如果$u POST[“mont”]是08 输出仅为字符串 原因可能是什么数字的前导零表示八进制格式。八进制只能升到7,所以08是无效的。数字的前导零表示八进制格式。八进制只升到7,所以08是无效的。这是因为在PHP中,任何前面带有“0”的数字都被读取为八进制数,所以“07”实际上表示以8为基数的7,而不是以10为基数的7(尽管它们的数量相同)。因此,“08”被视为无效的八进制数,而不是作为数字读取。这是因为在PHP中,

在此情况下,如果$u POST[“mont”]为07 输出为字符串和整数 但是如果$u POST[“mont”]是08 输出仅为字符串


原因可能是什么

数字的前导零表示八进制格式。八进制只能升到7,所以08是无效的。

数字的前导零表示八进制格式。八进制只升到7,所以08是无效的。

这是因为在PHP中,任何前面带有“0”的数字都被读取为八进制数,所以“07”实际上表示以8为基数的7,而不是以10为基数的7(尽管它们的数量相同)。因此,“08”被视为无效的八进制数,而不是作为数字读取。

这是因为在PHP中,任何前面带有“0”的数字都被读取为八进制数,因此“07”实际上表示以8为基数的7,而不是以10为基数的7(尽管它们的数量相同)。因此,“08”被视为无效的八进制,不能作为数字读取。

两个原因:

  • PHP是弱类型的,这意味着包含数字的字符串与仅包含数字的字符串之间没有区别。“5”==5

  • 以0开头的数字被视为八进制。“08”不是有效的八进制数,因此只能将其视为字符串

  • 两个原因:

  • PHP是弱类型的,这意味着包含数字的字符串与仅包含数字的字符串之间没有区别。“5”==5

  • 以0开头的数字被视为八进制。“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";
    ?>