FC2ブログ

top


総投稿数 1227 本 
no_132

eval で、eval()'d codeエラー:仕方がない。違う方法でクリア ・・・ 【PHP】

 2008-07-23
 phpでスクリプト書くとき、
 前から結構 eval が好きだったので

 (なんで?って。
 ん~ん。
 ごちゃごちゃからきれいに変数値 とれるとこかなぁ)


 前に紹介したようによく使ってます。
 $val = $$val では簡単に処理できない
 配列変数がらみでよく使いますが・・・

  ▼ ところが


 今回は疲れた。
 信念(?)を曲げて、 eval で処理することを断念
 一応、記録しておこう。

[ミッション]
・配列変数 $str_araay があり
・その値の末尾にsをつけた $str_array + s がある
(例)
$name_items = Array("umi","yama","kawa");
とあり
$umis =Array("日本海","太平洋","大西洋");
$yamas =Array("富士山","白根山","浅間山");
$kawas =Array("利根川","荒川","多摩川");
である


これを利用したリストループから値を取り出す

[今まで]
forループ内の時
  eval('$tempVal='.$name_items.'s['.$n.'];');

  などのようにして 取り出していた

[エラー]
Parse error: parse error, unexpected '[' in *******.php(52) : eval()'d code on line 1


※環境の違いによりうまくいったり行かなかったり・・・
 もちろんそれぞれの変数内の値は空でないことを事前にチェック

いろいろ調べて・・・少し疲れた。

[方針変更]
foreachループ に変更し

foreach ($name_items as $val) {
$tempVal ="";
if($val!=''){
$tempstr = $val."s";
$temparray = $$tempstr;
}
}

で取り出せた。

   不本意ではあるが、一応記録。



FC2ブログランキングにほんブログ村 IT技術ブログ Webサイト構築へブログ王ランキング人気ブログランキング人気ホームページランキングへ
commentsコメント
このコメントは管理者の承認待ちです
【2011/01/07 12:09】 | # | [edit]
comment_post












管理者にだけ表示を許可する
commentトラックバック
トラックバックURL:
http://metaboy.blog23.fc2.com/tb.php/132-1b4df8a9
ようこそ
リンク集
最近の記事

 

ブロとも申請フォーム
Sponserd by
Research Artisan Pro