投稿日 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の内容が{}の内容)を表示

などとして、文字列型に変換してから比較してください。
(これの比較は過去のバージョンと同じ挙動です)

仕様変更でお手数お掛けしますので
ご了承ください。
ご指摘ありがとうございます。


関連一覧ツリー

をクリックするとツリーを一括表示します)

返信フォーム

(この投稿に返信する場合は下記フォームから投稿して下さい)
(1MBまで)
(英数字で8文字以内)

- 投稿修正/削除フォーム -
処理 No パスワード

▲ページの先頭へ

- WebForum -