在分割不同类型的数字时,类型转换机制如何在PHP中工作?

时间:2017-10-02 14:09:19

标签: php casting type-conversion

我已经关注了代码片段:

<!DOCTYPE html>
<html>
  <body>

    <?php
      $x = 10;  
      $y = 6;

      echo $x / $y;
    ?>

  </body>
</html>

上述计划的输出为1.6666666666667

我期望输出为 1(即整数值),因为我将两个整数值分开。但是,我惊讶地发现我得到的输出是小数值

有人可以用简单,清晰且易懂的语言解释为什么我在上面的程序中得到小数分数值作为输出?

那就是,如何在上面的程序中进行类型转换?

此外,解释当使用工作代码示例完成两个分数或一个分数和一个整数的分割时的类型转换机制。

另外,让我知道,只有在除法的情况下或者在其他算术运算中(即加法,减法和乘法),才需要对分数值进行类型转换。如果是,它是如何工作的?如果不是,背后的正当理由是什么?

谢谢。

1 个答案:

答案 0 :(得分:3)

可悲的是,它在PHP中有点混乱 - 它不仅仅取决于运算符或操作数。 As per the manual

  

除非两个操作数是整数(或转换为整数的字符串),否则除法运算符(“/”)返回一个浮点值,并且数字可以被整除,在这种情况下,将返回一个整数值。有关整数除法,请参阅intdiv()。

所以你会得到一个float,除非两个操作数都是整数,它们是完全可分的。

<?php
var_dump(10 / 5);
var_dump(10.0 / 5.0);
var_dump(10 / 4);

int(2)
float(2)
float(2.5)