Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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 define()值混淆_Php_Function - Fatal编程技术网

PHP define()值混淆

PHP define()值混淆,php,function,Php,Function,根据我在google上找到的,define hold是一个常量,值是num和12。所以我的困惑是,echo num%8为什么等于4?有人能解释一下吗?顾名思义,define函数在运行时定义了一个变量。所以definenum,12只定义了名为num的变量,其内容为12 从: 定义-定义命名常量 在这之后,您就有了num%8,它的计算结果实际上是12%8。此时,PHP将字符串值转换为整数值,因为您需要对数字进行运算的%运算符。因此,请参见回声12%8,它也输出4 作为一个小实验,请看以下内容: de

根据我在google上找到的,define hold是一个常量,值是num和12。所以我的困惑是,echo num%8为什么等于4?有人能解释一下吗?

顾名思义,define函数在运行时定义了一个变量。所以definenum,12只定义了名为num的变量,其内容为12

从:

定义-定义命名常量

在这之后,您就有了num%8,它的计算结果实际上是12%8。此时,PHP将字符串值转换为整数值,因为您需要对数字进行运算的%运算符。因此,请参见回声12%8,它也输出4

作为一个小实验,请看以下内容:

define ("num", "12");
echo num%8;
如您所见,如果需要,PHP会自动转换类型

最后请注意,%是模运算符。它将左边的数字除以右边的数字,然后返回余数。
所以12/8是1,4的余数。这就是它输出4的原因。

12/8=1,12%8=4这是除法后的余数,我理解。但这是什么:定义num,12真的意味着什么?它的数值是12吗?那么当echo num%8实际上是12%8时?为什么不呢?在页面上有一些例子正好说明了这一点。这真的很有帮助!现在我明白了。谢谢好的,我把它移到了一个答案。谢谢你的解释!我现在明白了。
define("num", "12");
echo gettype(num); // Outputs: string
echo gettype(num + 1); // Outputs: integer