この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。
記載された情報が古くなっている可能性がございますので十分ご注意ください。
WordPress, PHP, MySQL等にはバージョン番号があります。
現在のWordPressの最新バージョンなら「3.8.1」です。(投稿当時)
このバージョン番号を文字列として比較して、どちらが新しいかを判断したいと思います。
単純にPHPなら「$バージョンA > $バージョンB」と書きたくなっちゃいますが、ちゃんと動かないですよ。
[ダメな例] 具体的にはこんな時に正常に動きません。
if("2.10.3" > "2.9.0") { echo "期待している判定"; } else { echo "実際の判定結果"; }
実行結果> 実際の判定結果
言われてみればごもっともですが、比較する文字列の長さが変われば、期待する動きはしなくなります。
ロジックとしては、「.」で分割して~・・・と考えがちですが、ちゃんとPHPには標準で関数が用意されていますよ!
これぐらいなら自分でも書いても・・・とは思わないでください。
version_compare — ふたつの “PHP 標準” バージョン番号文字列を比較する
[正しい記述] 先ほどの例を version_compare() で書き換えてみます。
if(version_compare("2.10.3", "2.9.0", ">")) { echo "期待している判定"; } else { echo "実際の判定結果"; }
実行結果> 期待している判定
このとおり正しく比較できました。