最小、最大値を求めるために結局SQLで引っ張ってくるよりPHP内で転がした方が各raspberry piを転がすときに便利そうなので変更していました。
そこでPHP_INT_MAXとPHP_INT_MINを使って初期値を設定したわけですが、エラーを吐かないのに挙動がおかしくなってしまいました。
PHP_INT_MINはPHP7以降で使用可能。というのは見ていたのですが、エラーにならないから大丈夫かと思ったら、大丈夫じゃなかったという(笑)
最後のチェックでは0という表示になっていたので悩んでいたのですが、設定値した値をダイレクトに文字列にすると PHP_INT_MIN とか表示されて笑っちゃいました。
これに関しては、PHP7を入れてもよさそうですがとりあえず
const PHP_INT_MIN = -65536;
としておきました。本当の値にしてもよさそうですが、実用上マイナスは気温の計測範囲以下にはならない(内部は1000倍して扱ってますが)のでこれで十分。
const PHP_INT_MIN = -PHP_INT_MAX+1;
とかやると、floatに変換されそうで怖いし、実害ないレベルで。
constよりdefine()のほうが推奨っぽい雰囲気ですが、まぁこれでいいか?
PHPバージョンで切り替えてもよさそうだけども…phpでも条件コンパイルみたいなことができるのかな?
そして今日はもう一つ。
本体判別のために、gethostname()を使ってたのですが、どうも連続して呼び出していると失敗することがある様子。
仕方がないので$hostname=gethostname();とかで逃げておきました。
0 件のコメント:
コメントを投稿