チケット #9750

Warning at module installation
登録: 2007-01-09 16:58 最終更新: 2007-01-17 18:57

報告者:
担当者:
チケットの種類:
状況:
完了
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
修正済み
ファイル:
なし

詳細

module いんすとーる時に sql ふぁいるが空っぽだと
/modules/legacy/admin/class/Legacy_SQLScanner.class.php
L28

foreach (array_keys($this->mTokens) as $key) {
ここで

Warning [PHP]: array_keys(): The first argument
should be an array in
file ...\modules\legacy\admin\class\Legacy_SQLScanner.c
lass.php line 28
Warning [PHP]: Invalid argument supplied for foreach
() in
file ...\modules\legacy\admin\class\Legacy_SQLScanner.c
lass.php line 28

と怒られちゃいます
foreach の前に $this->mTokens をちぇっくしてもいいけど
/modules/legacy/lib/EasyLex/EasyLex_SQLScanner.class.ph
p L91

var $mTokens;

var $mTokens = array();
なかんじのほうがよさそうかなぁ?
ほかのめんばはちゃんと初期化されてるし・・・

チケットの履歴 (4 件中 3 件表示)

2007-01-10 10:52 更新者: minahito
コメント
Logged In: YES
user_id=8353

[EN]
If the specified SQL file is empty on module installation,
Legacy_SQLScanner.class.php L28 warns.

EasyLex_SQLScanner should initialize all members.
2007-01-10 11:02 更新者: minahito
コメント
Logged In: YES
user_id=8353

[EN]
You're right. EasyLex_SQLScanner should initialize all
members on their declarations. I had not decided the place
where I should write the initializing code, because I was in
between PHP spec and C++ spec. But, I we should write
initializing code on the declaration under PHP spec, now.

[JA]
おっしゃるとおりで、EasyLex_SQLScanner はすべてのメンバをそ
の宣言時に初期化するべきですね。これまで宣言時にできる宣言は
やってしまうか、コンストラクタのみで行うか、 PHP スタイルと
C++ スタイルの間をふらふらしていましたが、 PHP 仕様の下、可
能な初期化は宣言時にやってしまうのがいいと今は考えています。
2007-01-17 16:47 更新者: minahito
  • 担当者(未割り当て) から minahito に更新されました
  • 解決法なし から 受領 に更新されました
コメント
Logged In: YES
user_id=8353


[JA](Junk)
まちがえて bug fix #7892 で流してしまった...
2007-01-17 18:57 更新者: minahito
  • チケット完了時刻2007-01-17 18:57 に更新されました
  • 解決法受領 から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

添付ファイルはありません

編集

ログインしていません。ログインしていない状態では、コメントに記載者の記録が残りません。 » ログインする