検索

ホームページ  >  に質問  >  本文

PHP 5.4 を PHP 7.4 にアップグレードした後、正しい値が返されませんでした。

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粉718165540P粉718165540501日前479

全員に返信(1)返信します

  • P粉442576165

    P粉4425761652023-07-18 09:21:50

    只需查看您的最终输出。我猜可能是字符集的问题。通常,新安装的 PHP 版本的 default_charset 值是 UTF-8,但旧版本可能将该值设置为 ISO-8859-1(即 latin-1),因此请检查您的 php.ini(以及可能更改字符集的项目中的其他脚本)。

    返事
    0
  • キャンセル返事