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