1

私は現在のアプリケーションを PHP 5.4.x に適応させようとしています (PHP 5.4.1 で Apache 2.4.2 を使用)テスト サーバーで) しかし、現在のアプリケーションをテスト サーバーで実行すると、いくつかの警告が表示されます。

たとえば...現在のアプリケーションでは、言語を検出し、 idiomas/ lang .php のような定義を含む言語ファイルをロードする関数を使用して定数定義を使用ます。デなど)。

各言語ファイル内には、次のような定義がいくつかあります。

define("IDIOMA_AF", "Afrikaans");
define("IDIOMA_AR", "العربية");
define("IDIOMA_BG", "български език");

したがって、特定の翻訳テキストを出力したい場合は、次のようにします。

<?php echo IDIOMA_AF; ?>

アプリケーションがスローされたときに PHP 5.4.1 が出力するメッセージは次のとおりです。

Notice: Constant IDIOMA_AF already defined in D:\apache\htdocs\aplicacion\modulos\base\idiomas\es.php on line 34

誰も同じ問題を抱えていますか?これらの問題を解決する方法を知ることは役に立つので、あなたの経験について少し知りたいです。gettext を使用してより良いシステムを実装することを考えています (長い目で見れば、より整理されていて扱いやすいと思いますが、それでも...)、現在のアプリケーションをアップグレードする前にしばらく実行したいと考えています。

4

1 に答える 1

2

これは、定数を 2 回定義しようとしていることを意味します (これは許可されていません)。

あなたは試すことができます:

if (!defined('IDIOMA_AF')) define('IDIOMA_AF', 'Afrikaans');

または、とにかく定数を2回定義している理由を追跡して修正します。

この関数get_defined_constants()は、このような問題のデバッグ ツールとしても役立ちます。

または、これらのエラーを無視してください:error_reporting(E_ALL & ~E_NOTICE);

于 2012-05-02T15:28:04.430 に答える