ホームページ >バックエンド開発 >PHPチュートリアル >ECshop を PHP7 バージョンに移行するときに発生する互換性の問題
最近、あるネチズンから PHP7 に ecshopv2.7.3 をインストールする際のエラーについて質問がありました。長い間原因がわかりませんでした。Script House の編集者がこの問題の原因を分析します。
ECShop V2 をインストールするとき。 PHP7 の 7.3 では、エラーを報告してください。
非推奨: クラスと同じ名前のメソッドは、PHP の将来のバージョンではコンストラクターになりません。ECS の /usr/local/nginx/html/ecshop/upload/includes/cls_ecshop.php の 25 行目に非推奨のコンストラクターがあります。
このエラーの原因は、PHP7 がクラスと同じ名前のコンストラクター メソッドをサポートしなくなったためです。たとえば、次のような記述メソッドが使用された場合、PHP7 はレポートします。このエラー。
<?php class foo { function foo() { echo 'I am the constructor'; } } ?>
ecshop に戻る cls_ecshop.php ファイルの 25 行目を見てみましょう。以下のように
案の定、クラスと同じ名前のコンストラクターメソッドが存在します
ecshopインストールホームページに戻って更新してください。 、エラーがないことがわかります。
「次へ」をクリックしてエラーを報告してください
非推奨: 非静的メソッド cls_image::gd_version() は /usr/local/nginx/html/ecshop/upload/install/includes/lib_installer で静的に呼び出すべきではありません.php の 31 行目このエラーの理由は、非静的メソッドが静的に呼び出されることです。たとえば、次のコードはこのエラーを報告します
<?php class foo { function bar() { echo 'I am not static!'; } } foo::bar(); ?>
変更も非常に簡単です。メソッドを変更するか、メソッドを静的メソッドに変更するか、呼び出しを非静的呼び出しに変更します。 エラー ファイル lib_installer.php
の 31 行のコードと cls イメージ クラス ファイルの gd version() メソッドを見てみましょう。確かに static キーワードが使用されていないことがわかります
。
最初のタイプの変更メソッドは、メソッドを静的メソッドに変更し、メソッドの前にキーワード public static
どちらの方法でも問題を解決できます。 ecshop のインストール手順の 2 ページ目に戻ると、エラー メッセージは消えています。
次の悲劇は、PHP7 がオリジナルの mysql API をサポートしていないことです。PHP7 はより優れた Mysqli API と pdo_mysql API をサポートしているため、mysql を操作する API を変更しないと ecshop を PHP7 で実行できません。
OneAPM for PHP は、コードレベルのパフォーマンス問題の可視化、パフォーマンスのボトルネックの迅速な特定と追跡、実際のユーザー エクスペリエンスの監視、サーバーの監視など、アプリケーションのパフォーマンス管理と監視を完了するために、すべての PHP アプリケーションに深く入り込むことができます。エンドツーエンドのアプリケーションパフォーマンス管理。
上記では、ECshop が PHP7 バージョンに移行したときに発生した互換性の問題について説明しましたが、皆様のお役に立てれば幸いです。 関連する推奨事項:
一時フォルダーが見つからないための PHP アップロード ソリューション
🎜🎜🎜🎜
以上がECshop を PHP7 バージョンに移行するときに発生する互換性の問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。