[一覧に戻る]
便利な変数

ページ更新履歴
(04/03/26)ページ作りました

SOLD OUTにはマニュアルに載っていない隠された(?)関数や変数が実はたくさんあります。

今回はその中の一部をご紹介します。



%id2idx
DataRead()の中(_base.cgi 375行目あたり)で定義されるハッシュ変数です。
main名前空間に属するのでアイテム関数などからは%main::id2idxになります。
キーとして店舗ID(DT->{id}の値)、
値として@DTの添字を持ちます。

つまり次のように書くと目標の店舗IDのデータ($DTに相当)するものを受け取ることができます

$a=$DT[$id2idx{$id}];


$idには目標の店舗IDを指定、$aに目標の$DTに相当するものが入ります。
以降$DTや$DTSと同様に操作できます。

ただし目標の店舗が無い場合は現在1位の店舗が返されることになります。
これが問題にならないよう、事前に目標が存在することを確認しなければいけません。

if(defined($id2idx{$id})){}


このifが真になれば目標が存在します。
必ずチェックしましょう。

ちなみにアイテム関数から見える$USE->{arg}->{targetidx}と$DTSも3行に分かれてかつ離れたところにありますが、同じ方法で取得されています。
(気になる方はitem-use.cgiの21,67行目、auto/use.cgiのUseItem内、155行目を見てください)



%name2idx
上記%id2idxと同時に定義されるハッシュ変数で、
キーがログイン名(店長名)になっていることを除き、%id2idxと同じものです。
ただし閉店した店長名と同じ名前で開店すると再び有効になるため、自作スクリプト上で使う場合には注意が必要です。



%name2pass
これも%id2idx等とほぼ同時に定義されるハッシュ変数で、
キーにログイン名(店長名)、
値にパスワードを持ちます。

値がパスワードなのであまり使い道は無いかもしれませんが・・・
最終更新 2004/04/12