回答編集履歴

1

追記

2018/05/15 11:22

投稿

退会済みユーザー
test CHANGED
@@ -31,3 +31,31 @@
31
31
  echo gettype($val) . "\n"; // ← 結果 double ウェウェウェ
32
32
 
33
33
  ```
34
+
35
+
36
+
37
+ ####追記
38
+
39
+
40
+
41
+ % (moduler) は左辺がINTEGERでないとダメなので double になった 3486784400 を int に暗黙キャストするんだけど、オーバーフローして値がマイナスになるんだろうな。
42
+
43
+
44
+
45
+ 一方、商については double をそのまま割って型は double のまま。
46
+
47
+
48
+
49
+ ```PHP
50
+
51
+ <?php
52
+
53
+ $val = 3486784400;
54
+
55
+ echo gettype($val) . "\n";   // ← double
56
+
57
+ echo gettype($val % 7) . "\n"; // ← integer
58
+
59
+ echo gettype($val / 7) . "\n"; // ← double
60
+
61
+ ```