重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

以下のPHPを書きましたが if文の$aに期待する値が入りません。この場合はどのようにすればよいのでしょうか?

$a = "\$item[2] == \"1\" || \$item[2] == \"4\"";
$Data = file("data.csv");
for($i = 0; $i < sizeof($Data); $i++){
$item = explode(",", $Data[$i]);
if($a){
include('list.php');
}
}

A 回答 (3件)

>> $a = "\$item[2] == \"1\" || \$item[2] == \"4\"";



上記1行を下記に変えればすっきりしそうです
$a = ($item[2] == "1" || $item[2] == "4");
    • good
    • 0

文字列を実行したいということ?


たとえばこんな風にできますが・・・
文字列で条件を書くのはあまりよいやり方とは思いませんが・・・

<?
$item[2]=1;
//$item[2]=2;
$a = "\$item[2] == \"1\" || \$item[2] == \"4\"";
if( eval("return $a;")){
print "match!";
}
?>
    • good
    • 0
この回答へのお礼

>文字列で条件を書くのはあまりよいやり方とは思いません

そうなんですね。他のやり方で処理してみます。
ありがとうございました。

お礼日時:2008/11/11 14:18

$a をわざわざ外に出しているのは何か意味があるんでしょうか?



if($item[2] == "1" || $item[2] == "4"){
include('list.php');
}
これで通りませんか?
    • good
    • 0
この回答へのお礼

$aが条件によって色々変わるので外に出していました。
あまり処理的に美しくなさそうなので他の方法を考えます。

ありがとうございました。

お礼日時:2008/11/11 14:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!