商品マスタと受注データを以下のファイルで管理しています。
【item.csv】
1,たまご
2,牛乳
3,ピーマン
【order.csv】
2,400
3,100
1,8
2,20
index.phpは以下の実装です。
lang
1//受注データ読み込み 2$file = explode("\n", file_get_contents("order.csv")); 3foreach ($file as $line) { 4 //商品コード、数量 5 list($itemCd, $suryo) = explode(",", $line); 6 //インスタンスの配列 7 $orderList[] = new Order($itemCd, $suryo); 8} 9 10 11foreach ($orderList as $order) { 12…以下略… 13 14//Orderクラス 15class Order { 16 private $itemCd;//商品コード 17 private $itemName;//商品名 18 private $suryo;//数量 19 20 function __construct($itemCd, $suryo) { 21 22 $this->itemCd = $itemCd; 23 $this->suryo = $suryo; 24 25 //商品マスタから商品名を調べる 26 $file = explode("\n", file_get_contents("item.csv")); 27 foreach ($file as $line) { 28 list($cd, $name) = explode(",", $line);//商品コード、商品名 29 if ($cd === $itemCd) { 30 $this->itemName = $name; 31 break; 32 } 33 } 34 } 35}
これでも動くのですが、Orderクラスをnewするたびにitem.csvを読み込みに行ってしまいます。
もっと効率のよい書き方はないでしょうか。
よろしくお願いします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/04/10 08:22
2015/04/10 08:59