ホームページ  >  記事  >  バックエンド開発  >  PHP エラー、egroupware のビルド、予期しない T_ARRAY、「&」または T_VARIABLE が必要です

PHP エラー、egroupware のビルド、予期しない T_ARRAY、「&」または T_VARIABLE が必要です

WBOY
WBOYオリジナル
2016-06-23 14:27:121343ブラウズ

php apache egroupware mysql windows

Windows-XPでegroupware環境を構築
apache+mysql+phpを使用
バージョン番号は次のとおりです:
apache: 2.0.50
mysql: 4.0.20d
php:5.0.0
egroupware :1.8 .004.20130831

ブラウザに URL を入力します: http://127.0.0.1/egroupware
次のエラーが報告されます:

警告: set_error_handler() はパラメータ 2 が長く、C:Apache Groupwwwegroupwarephpgwapiinccommon_ で指定された文字列であることを予期します。 function.inc.php (1640 行目)

解析エラー: 解析エラー、予期しない T_ARRAY、C:Apache Group で '&' または T_VARIABLE が必要ですwwwegroupwaresetupincclass.setup.inc.php (986 行目)


論理的に言えば、次のようなオープン ソース コードegroupware はエラーを報告しません。バージョンに互換性がないのでしょうか?またはどの構成ファイルを設定する必要がありますか?

助けて、助けて、助けて。 。 。

ディスカッションに返信(解決策)

どのバージョンが必要かは公式バージョンを見てください。 php のバージョンの違いが原因であるはずです。

例: function droptables(array $setup_info,$DEBUG=False) この関数ステートメントはエラーを報告します:
解析エラー: 解析エラー、予期しない T_ARRAY、C:Apache Groupwwwegroupwaresetupincclass.setup_process.inc で '&' または T_VARIABLE が必要です.php の 323 行目


次に、エントリ パラメータの配列、つまり
関数 Droptables($setup_info,$DEBUG=False) を削除しましたが、エラーは報告されませんでした



いったい何が起こっているのでしょうか? ? ? ? ?

PHP 5 以降では、PHP の型制約メカニズムを使用するのは非常に簡単になり、関数で宣言されたパラメーター変数の前に指定された型名を追加するだけです。この関数を呼び出すと、PHP は関数のパラメーターが指定された型であるかどうかを強制的にチェックし、そうでない場合は致命的なエラーが発生します。

私のphpのバージョンが低すぎるということでしょうか? それでは、まず新しいものを試してみます

パラメータの型宣言はphp5.3以降に徐々に追加されました

はい、パラメータの型宣言はphp5.3で追加されました徐々に後で

php5.3.5 に変更し、テストコードを使用しました:
$link=mysql_connect('127.0.0.1','root','123456');
if(!$ link) echo "fail";
else echo "success";
?>

Apache のログ情報にクエリを実行して、次を見つけます。 [エラー] [クライアント 127.0.0.1] PHP 警告: mysql_connect(): 3.22、3.23、および 4.0 への接続はサポートされていません。C:\Apache Group\www\test.php の 2 行目は 4.0.20a-nt です。 [Thu Nov 14 14:10:19 2013] [エラー] [クライアント 127.0.0.1] PHP 警告: mysql_connect(): 3.22、3.23、および 4.0 サーバーへの接続は C:\Apache Group\www \test.php ではサポートされていません2行目
[Thu Nov 14 14:10:19 2013] [エラー] [クライアント 127.0.0.1] PHP 警告: mysql_close(): C:\Apache Group\www\ test.php に MySQL-Link リソースが提供されていません5 行目


何が起こっているのですか? ?もつれています ^^^^

mysql_connect(): 3.22、3.23、および 4.0 への接続はサポートされていません。サーバーは C:\Apache Group\www\test.php の 2 行目で 4.0.20a-nt です

明らかに、あなたの mysql は次のとおりです。古代!

mysql_connect(): 3.22、3.23、および 4.0 への接続はサポートされていません。サーバーは C:\Apache Group\www\test.php の 2 行目で 4.0.20a-nt です


どうやら、mysql は古いようです。

はは、mysql に変更したら成功したはずです。 。 。 。
mysql5.1.41

ありがとう



声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。