公式 [マニュアル][1] にある PEAR のインストール方法の指示に従っていると、次のエラーが発生しました:
致命的エラー: キャッチされないエラー: C:xampp_latestphp (include_path='C:xampp_latestphpPEAR') の必要な 'phar://go-pear.phar/index.php' を開けません go-pear .phar: 1284 スタック トレース: #0 {main} が C:xampp_latestphpgo-pear.phar 行 1284
他の解決策を探してみたところ、[これ][2]を見つけました。ただし、依然として pear をインストールできず、次のエラーが表示されます:
PHP 致命的エラー: C:xampp_latestphpgo-pear.php 行 1182
中括弧を使用した配列および文字列のオフセット アクセス構文はサポートされなくなりました。
ネットワークとコマンドライン経由でインストールしようとしましたが、同じエラーが発生しました。
また更新です。 さらに検索を続けたところ、次のものが得られました。 協会 そこで、エラーで示唆されているように、別のファイルで中括弧を角括弧に変更しようとしましたが、最終的に次のエラーが発生しました。 リーリー
基本的に、xampp が提供する PEAR は、PHP 8.x で実行できるように更新されていません。また、PHP 8.0 では非推奨または削除された複数の機能に直面し、PHP の致命的なエラーが発生しました。
1) アクセス文字の問題
元のコードを比較最初の問題は、 文字列アクセスで中括弧
{}
が使用されることです。 にアクセスするときのゼロベースのオフセットが削除され、角括弧[]## のみが使用できます #。
リーリー
固定コードを使用:リーリー ######解決:### ### 正規表現
\{(\$[a-zA-Z0-9\ ]*)\}を使用して、xampp/php/pear フォルダー内のすべてのファイルを検索し、## に置き換えます#[$1]
重要
にあり、関数定義は 446 行目にありました:: すべての出現箇所を確認し、スクリプト内の正規表現を変更しないでください。 ! !
2) 捕捉されない ArgumentCountError 問題 2 番目の問題は、PHP 関数
set_error_handler
が PHP 8.0.0 で
最後のパラメータ を削除したことです。 コールバック関数には
5 つの引数 が必要ですが、取得できるのは 4 つの引数 だけなので、呼び出しは PHP Fatal error: Uncaught ArgumentCountError: Too Fewarguments to function error_handler( ) , 4 で失敗します。項目は渡されましたが、期待されていたのはちょうど 5 項目です。
######解決:### ### set_error_handler( 呼び出しを検索し、参照されているコールバック関数 error_handler を見つけて、最後の引数をオプションにします。
私の場合、それはスクリプト
xampp\php\pear\pearcmd.php元の関数定義を比較: リーリー
3) 未定義関数 each() の問題修正適用後:
リーリー
注: 2021 年 9 月に、Apache Friends Support Forum
で「バグ」が報告されていることがわかりました。each()
が削除され、「PHP Fatal Error: Uncaught Error: Call to unknown function each()」がスローされることです。 ######解決### ###
に置き換えることができます リーリーeach(
(結果セット内の関数 "foreach" を削除するにはスペースを使用します) の出現をすべて検索し、関数
foreach で確認して更新し、各 .\ で正しいパラメーター ファイルを使用します。
while 構文例
リーリー
はリスト 構文例
ステートメントでは他にもいくつかの状況が使用されます。リーリー
は
に置き換えることができます リーリーIf - else
emtpy($args)
変数 $opt_arg を構築します。の後に
foreach($args as $opt_arg) を使用できます。{}If - else
は構文例
リーリーに置き換えることができます リーリー
PEAR がついに XAMPP バージョン: 8.2.0で動作するようになりました リーリー