PHPは仕様がよく変わったりするので、ハマってしまうことが多々あります。 POSTされた文字列が行方不明になる †htmlspecialcharsを使っていると起こります。 × $string = htmlspecialchars($string); ○ $string = htmlspecialchars($string, ENT_COMPAT | ENT_HTML401, 'EUC-JP'); 現在のシーケンス値を取得しようとするとエラーになる †原因がPHPなのかPEARなのかPostgreSQLなのか不明です。 × $seq = $mdb2->currID('seq'); ○ $seq = $mdb2->queryOne("SELECT currval('seq')"); mbstring周りが同じなのに文字化け †異なるサーバで、mbstring周りの設定は同じで、プログラムも同じなのになぜか文字化けすることがあります。 floorすると誤差が出る †計算結果をround, ceil, floorするのはよくあると思いますが、floorすると誤差が出てしまいハマりました。 echo floor((0.1 + 0.7) * 10); // 7 え、どうして8じゃないの? echo floor(strval((0.1 + 0.7) * 10)); // 8 正攻法はBC Math 関数を使用するらしいですが、面倒です。 詳しい説明はマニュアルにあります。 JavaScriptでも同じことになりました。 console.log(Math.floor((0.1 + 0.7) * 10)); // 7 console.log(Math.floor(((0.1 + 0.7) * 10).toFixed(1))); // 8 |