PHP 5.4 で実行されるいくつかのスクリプトを PHP 7.4 でも実行できるようにしようとしています。修正された古い参照渡しエラーを除いて、構文エラーは検出されませんでした。
アプリケーションの一部で、正しい戻り値が得られません。 php7cc と PHPStorm を実行して、エラーや非推奨の警告をキャッチできるかどうかを確認しましたが、問題が何であるかについて手がかりは得られませんでした。
XML データを解析してクラス オブジェクトに入れるスクリプトがあります。 _MV_WRITE_._MV_SEP_._MV_SEP_.$this->mvKey._MV_SEP_.$this->mvObj->toString()._MV_SEP_この部分は正しいですが、$item->toString() が正しい文字列ではなく空白を返す点が異なります。価値。
このコードの中に、PHP 5.4 では動作するが PHP 7.4 では動作しないものはありますか?以下は問題のコードです。
メインスクリプト
XML パーサー
リーリーMVアイテム
リーリーPHP 5.4における正しい戻り値は次のとおりです
リーリーPHP 7.4 で得られる結果は次のとおりです:
リーリー返される配列は同じであるため、XML パーサーは問題ないはずです。本当の問題は getFormattedItem() メソッドにあり、これには実際には extract() メソッドのみが関係します。さまざまな場所に print ステートメントを追加しようとしましたが、どのステートメントが問題の原因となっているかを特定できないようです。
P粉4425761652023-07-18 09:21:50
只需查看您的最终输出。我猜可能是字符集的问题。通常,新安装的 PHP 版本的 default_charset 值是 UTF-8,但旧版本可能将该值设置为 ISO-8859-1(即 latin-1),因此请检查您的 php.ini(以及可能更改字符集的项目中的其他脚本)。