JavaScript・PHP・Vue.jsのサンプルやWordPressのテーマ・無料フォント、ブログの運営方法等の紹介

PHP7.1で「Warning: A non-numeric value encountered in」の対処法

この記事を簡単に書くと…

  • PHP7.1は7.0に比べて「OPcache」周りで速くなっている?
  • PHP7.1でWarning: A non-numeric value encountered inのエラーが表示
  • 「media.php」を修正することでエラー(警告)は出なくなる
ブログランキング・にほんブログ村へ

PHP7.1で「Warning: A non-numeric value encountered in」の対処法

エックスサーバーでPHP7.1が導入されていました。
PHP7.0や7.1は、PHP5系統と比較すると2倍以上の実行速度を誇るそうです。サイトの表示速度は、色々な面でとても重要なので、PHP7.0を使っておきたいところです。とはいえ、互換性の問題もあるので、バージョンアップは慎重に行いましょう。

>> WordPressを高速化。PHP7に変更する際のテーマやプラグインの注意点

 

そして、7.0と7.1は何か変わったのでしょうか。。。
こちらのサイトでは「OPcache」周りで改善されているとの情報が書かれていました。

・PHP 7.1でOPcacheがすごい速くなってた
http://qiita.com/hnw/items/50ecd4dc69fe0a48f003

 

「Similar Posts」でエラー(警告)が表示

少しでも、レスポンスが改善されるなら、ということでPHP7.1にバージョンの切り替えを行ってみたところ。。。 WordPressの関連記事を表示させるプラグイン「Similar Posts」の表示の際に「Warning: A non-numeric value encountered in ~~ /wp-includes/media.php on line 647」というエラー(警告)が表示されるようになってしまいました。何やら「media.php」の647行目でエラー(警告)が発生しているようです。

これはPHP7.1からの変更点で、数値ではない値で演算を行うと警告が表示されてしまうみたいですね。「media.php」の647行目を見てみると、以下のような演算が行われています。おそらく「$expected_size」が文字列として扱われてしまっているので「(int)$expected_size」というように、型を指定してあげます。これでエラー(警告)は表示されなくなりました。

$matched = ( abs( $constrained_size[0] – $expected_size[0] ) <= 1 && abs( $constrained_size[1] – $expected_size[1] ) <= 1 );

     ↓

$matched = ( abs( $constrained_size[0] – (int)$expected_size[0] ) <= 1 && abs( $constrained_size[1] – (int)$expected_size[1] ) <= 1 );

 

今回の場合は、メディア(写真)のサイズなので、「int型」(整数)で良いと思うのですが、「(float)」を指定しても警告は表示されなくなりました。間違えている場合には、ご指摘していただけますと幸いでございます。

 

7.0と7.1のレスポンスの違いは分からない程度

さて、PHP7.1になり、肝心のサイトのレスポンスはどうでしょう。
サイトの表示速度を計測できる「GTmetrix」で計測してみました。

複数のサイトで計測した結果は、「PageSpeed Score」が1%上がるか、もしくは上がらないか、といったところでした。そこまで大幅な改善は見られなかったようです。実際の体感速度も違いが分からない程度でした。

今回、「media.php」を直接修正したので、WordPressの更新があった際には、元に戻ってしまう可能性があります。その為、このエラー(警告)が、WordPress側で修正されるまで、毎回手作業で修正する必要があります。

その手間を考慮すると、しばらくはPHP7.0を使っていた方が良いかもしれませんね。
PHP7.1にしたからといって、そこまでの体感速度も変わらないので。。。

とはいえ、手作業の手間よりも少しでも速度を重視するというなら、PHP7.1にバージョンアップしても良いかと思います。

 

まとめ

PHP7.0からは、下位互換性のない部分も多いので、万が一の時には戻せるようにしておきましょう。

この記事をSNSでシェアする

関連記事

こちらの記事も読まれています

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Follow us on Twitter Subscribe RSS Follow us in feedly
NATURAL PRESS

カテゴリー

このサイトについて

JavaScript・PHP・Vue.jsのサンプルや参考リンク、WEBサイト(ホームページ)で使えるアイコンや写真等の素材をダウンロード出来ます。

他にも、無料で使えるブロガーやアフィリエイター向けの、WordPressマガジンテーマ「NATURAL PRESS」を公開しています。ダウンロードや更新情報は、こちらのサイトで公開しています。

また、「WEB上手」は全ページリンクフリーですのでご自由にリンクしていただけます。リンクしていただけますと嬉しいです。

WordPress Theme NATURAL PRESS by WEB-JOZU.com