• ベストアンサー

すっきりしたロジックを・・

PHP5.0使用です。 画面からデータを登録(修正)し、DBに書き込むプログラムを作っています。 プログラムは登録(修正)画面→確認画面→DB書き込みの3本に分けて、それぞれセッション変数(またはPOST変数)で情報を渡しています。 3本のスクリプトの最初で、セッション変数→普通の変数へ移す処理を行っているのですが($fld001=$_SESSION('fld001')のように)、変数の数が多いため、いかにも冗長です。 functionでもクラスでもいいのですが、各スクリプトで使い回しが出来るような、すっきりしたいい方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

恐らく、extract関数を使えば一発かと extract($_SESSION); あるいは、 extract($_POST); こうすれば $varname1 = $_SESSION[varname1]; $varname2 = $_SESSION[varname2]; .......... とした場合と同じです。

candie-o
質問者

お礼

ありがとうございました。参考にさせていただきます。

その他の回答 (1)

  • hakugen
  • ベストアンサー率36% (8/22)
回答No.1

こんにちは。 実際使ったことがないので、ちゃんと動くかわからないですけど、オブジェクトとしてセッションに渡せばよいのではないでしょうか。 Class Data{ var fld001; function setFld001($fld001){ $this->fld001 = $fld001; } function getFld001(){ return $this->fld001; } } みたいなクラスを用意しておいて、オブジェクトを生成しておきます。 そして、session_register()関数で登録すれば勝手にシリアライズをしてくれて使えるようです。 あとは、もっと直観的にやるとすれば Class Data{ var $fld001; var $fld002; function setData(){ $this->fld001 = $_SESSION['fld001']; $this->fld002 = $_SESSION['fld002']; } } のような感じのクラスを一つ別ファイルで用意するというのはいかがでしょうか?

参考URL:
http://php.planetmirror.com/manual/ja/language.oop.serialization.php
candie-o
質問者

お礼

ありがとうございました。参考にさせていただきます。