「A non well formed numeric value encountered」が出ます...

数値にPHP_EOLを連結しているからですね。
2020年11月9日
ユーザー



こんにちは。

動画のとおりにやってみたのですが、
echo sum(100, 200, 300) + sum(300, 400, 500) . PHP_EOL;
を実行したところ、
Notice: A non well formed numeric value encountered in 〜
というエラーメッセージが出ました(エラーメッセージは出ますが、結果はきちんと出力されています。)。

調べてみたところ、このエラーメッセージは、「数値を期待する演算を行う際に数値から始まり、数値ではない文字が含まれる文字列を使用すると発生する」ようですが、どうしてエラーになったのかがわかりません(https://pgintro.net/php/error/a_non_well_formed_numeric_value_encountered/)。

試しに
$d = sum(100, 200, 300) + sum(300, 400, 500);
としてvar_dumpで$dの型を調べてみたところ、int型となったので、"sum(100, 200, 300) "も"sum(300, 400, 500)"も数値なのではないかと思ったのですが、ここで行き詰まってしまいました。

ちなみに
echo $d . PHP_EOL;
としたときも、同じエラーメッセージが出ました。

なぜエラーになったのか、またこのようなエラーが出た場合の対処法を教えていただければと思います。よろしくお願いします。

この回答を見るにはプレミアムプランへの登録が必要です

プレミアムプランとは?

このレッスンの質問と回答(8)