回答編集履歴
2
マニュアルへのリンク追加
test
CHANGED
@@ -112,7 +112,7 @@
|
|
112
112
|
|
113
113
|
|
114
114
|
|
115
|
-
PHPでは未定義の変数にアクセスすると(E_NOTICEは返したりしますが)`NULL`になります。これを`(int)`で整数にキャストしてるわけですから`(int)NULL`となり、0にキャストされます。
|
115
|
+
PHPでは未定義の変数にアクセスすると(E_NOTICEは返したりしますが)`NULL`になります。これを`(int)`で整数にキャストしてるわけですから`(int)NULL`となり、[0にキャスト](https://www.php.net/manual/ja/language.types.integer.php#language.types.integer.casting:~:text=NULL%20%E3%81%8B%E3%82%89)されます。
|
116
116
|
|
117
117
|
|
118
118
|
|
1
追記
test
CHANGED
@@ -79,3 +79,41 @@
|
|
79
79
|
|
80
80
|
|
81
81
|
まあ、あまりこのようなコードを書く機会はないことを願いたいまでですが……
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
-----
|
86
|
+
|
87
|
+
|
88
|
+
|
89
|
+
> ```
|
90
|
+
|
91
|
+
> $stock_{$i} = (int)explode(" ", fgets(STDIN));
|
92
|
+
|
93
|
+
> ```
|
94
|
+
|
95
|
+
> としても何も変わりませんでした。
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
上に示したとおりです。
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
> 一方で、
|
104
|
+
|
105
|
+
> ```
|
106
|
+
|
107
|
+
> echo (int)$stock_1[0];
|
108
|
+
|
109
|
+
> ```
|
110
|
+
|
111
|
+
> とすると、0だけ出力されました。これもなぜかわからず、混乱しております。
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
PHPでは未定義の変数にアクセスすると(E_NOTICEは返したりしますが)`NULL`になります。これを`(int)`で整数にキャストしてるわけですから`(int)NULL`となり、0にキャストされます。
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
※ [8.0でWarnにかわりそうです](https://qiita.com/rana_kualu/items/4815d52f9885917af1a8)
|