今週の PHP 2024-07-06 〜 2024-07-12
PHP のメーリングリストから、気になった情報をピックアップします。
Internal
ext/gd adding imagecompare - Externals
iamgecompare
という組み込み関数をGD拡張に追加しようというお便り。詳細なdiffの情報をbitmaskで返却するという話がなされています。画像diffとかCIで使うような用途なのかな???
なーんて書いてたら ext/gd new imagematch function (was: adding imagecompare) - Externals
改善された提案として imagematch
という関数の提案がきていますね。pixel-by-pixel matchingなので詳細なマッチ情報を返してくれそう。
PHP: rfc:container-offset-behaviour
イマイチよくわからなかったのですが、ArrayAccessの一貫性向上の話らしい。
Breaking change of rounding behavior in PHP 8.4 - Externals
PHP 8.4において、roundの挙動変更があるが、それはPHP 9.0まで延期すべきではないか?というお便り。
指摘されている挙動変更については https://3v4l.org/tgRMc/rfc
確かに、物によっては前バージョンと結果が異なるものがあります。その影響度を考慮してリバートするのかどうするのか?という話になっています。高精度のfloatのroundなどを行っていない場合はあまり神経質にならなくてもよさそうですが、それ以外の場合は問題がでる可能性があります。浮動小数点計算についてはそもそもIEEE754に準拠してないなどの問題もあって、この話がどう転がるのか。
とりあえず、今回の対応はBugFixだから、8.4にいれるでしょ?という感じなのかな。
https://github.com/php/php-src/pull/14943 こちらのPRがマージされるのかどうか
[low priority] WeakMaps with scalar keys - Externals
使ったことないのですが、WeakMapのkeyはオブジェクトなんですね。そこにscalarタイプのキーも使えるようにしようというお便り。使ったこと内ので勘所が分かりません。すまん。
Negatively Voted Notes - Externals
Noteというのは、PHPマニュアルに投稿されているユーザーのサンプル実装とかです。このNoteの中で否定的な投票が多いものは消しましょうという議論。実に生々しい運用の話です。とても重要。
PHP: rfc:allow_int_args_to_bcmath_function
BC Math は任意精度の数学関数ですが、ご存知?の通り、引数で受け取る数値は文字列です。int|floatは受け取っていません。これについてintを受け取れるようにしようよというRFCです。
一貫性とか考えると文字列のままっていうのが良いのでしょうか、floatは制度がよくわからないことになりそうなので駄目な気がする。ひとまず8.4には入らず、議論は続くようです。
Decoding HTML and the Ambiguous Ampersand - Externals
html_entity_decode
ってなんか微妙じゃない?(意訳)というお便り。分かる。
Discussion