Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.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_Variables - Fatal编程技术网

这是由于PHP的松散类型特性还是其他原因?

这是由于PHP的松散类型特性还是其他原因?,php,variables,Php,Variables,为什么会有这样的产出差异。这是由于松散类型的PHP还是其他原因造成的? <?php //optional_argu.php function add($one, $two, $three="") //optional argu { echo $one + $two + $three.'<br />'; } add(040, 20); add(40, 20); ?> 输出: 52 60 为什么?表示数字

为什么会有这样的产出差异。这是由于松散类型的PHP还是其他原因造成的?

<?php
    //optional_argu.php
    function add($one, $two, $three="") //optional argu
    {
        echo $one + $two + $three.'<br />';
    }

    add(040, 20);
    add(40, 20);
?>

输出:
52
60

为什么?

表示数字在。数字
040
是十进制的32。

请了解八进制数字符号-040等于32,这就是您的结果。在大多数编程语言中,前导零的数字被解释为八进制数字系统。这意味着
040
数字是整数
32
的八进制表示。是的,我知道了,0x表示十六进制数字