投稿日 | 2022/05/16(Mon) 20:39:09 |
---|---|
投稿者 | ゆうと |
参照先 |
お世話になっております。
> 下記のサンプルで、以前のバージョンではすべて「○」となっていたのですが、1.7.1131および1.9.1129では「×」になってしまうようです。
無の比較ですが、仕様としては次の通りの結果になります。
1.(内容1が無)を表示 //○
2.(内容2が無)を表示 //× (こちらは以前から×で、正しい結果です)
3.(内容2が{})を表示 //× (以前のバージョンは○でしたが×に仕様変更となります)
1.については、空(文字数が0)の文字列が無と等しいという特別な仕様が歴史的に正しいので
1.7.1133で戻しました。
2.については、×が正しいです。
「無」は「値がない」ことを表す状態です。
「内容2」変数の中身には、要素数が0個であっても配列が入っている状態ですので
無とは異なります。これは正しい挙動です。
3.については、以前のバージョンでは○でしたが
×に仕様変更させて頂きます。(今回発覚しましたので今後ブログに記載します)
配列は、参照型の値ですので、
要素の値や個数が等しくても違う配列となり、比較結果は×となります。
参照型については、ブログの記事に書かれていますので、こちらをご覧下さい。
https://wp.utopiat.net/2020/09/2183/
なお、過去のバージョンと同じように配列どおしの比較をしたい場合は
(内容2の内容が{}の内容)を表示
などとして、文字列型に変換してから比較してください。
(これの比較は過去のバージョンと同じ挙動です)
仕様変更でお手数お掛けしますので
ご了承ください。
ご指摘ありがとうございます。
- WebForum -