回答編集履歴
1
修正
answer
CHANGED
@@ -6,23 +6,23 @@
|
|
6
6
|
return 1*0*08
|
7
7
|
```
|
8
8
|
が最初に引っかかってます。
|
9
|
+
0 を頭に付ける表記は 8進数を表します。
|
9
10
|
|
11
|
+
5 系では、8進数として正しくない表現は無視(?)されていましたが、
|
10
|
-
|
12
|
+
7 系では、8進数として正しくない表現はエラーとすることになりました。
|
13
|
+
|
11
14
|
計算としても、8進数で計算されています。
|
12
15
|
|
13
16
|
```php
|
14
17
|
echo 1 * 017;
|
15
18
|
//15
|
16
19
|
```
|
20
|
+
もともと正しく動いていなかったコードが、正しく(?)エラーを吐くようになっただけです。
|
17
21
|
|
18
|
-
5 系では、8進数として正しくない表現は無視(?)されていましたが、
|
19
|
-
7 系では、8進数として正しくない表現はエラーとすることになりました。
|
20
|
-
|
21
22
|
マニュアルの該当箇所は以下です。
|
22
23
|
[構文-整数 php.net](https://www.php.net/manual/ja/language.types.integer.php#language.types.integer.syntax)
|
23
24
|
[Invalid octal literals](https://www.php.net/manual/ja/migration70.incompatible.php#migration70.incompatible.integers.invalid-octals)
|
24
25
|
|
25
|
-
もともと正しく動いていなかったコードが、正しく(?)エラーを吐くようになっただけです。
|
26
26
|
|
27
27
|
正常に動かすには、すでに検討しているように
|
28
28
|
・文字列から、頭に 0 のついた数字を 0 なしのものに置換
|