タイトルまんまです.if文の中身を変数にしたい.
具体的に言うとこんな感じです.
lang
1$if = “!empty($str)”; 2if($if) { /* 処理 */ }
っていう感じです.分かりますかね,,
ちょっとむずかしいかもしれませんが,よろしくお願いします.
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ifの条件式のところで変数に代入することが出来ます。
よくDBコネクションを張る時やファイルを開くときに使う方法です。
lang
1if( $fp = fopen('sample.txt','w') ){ 2 fputs($fp,'sample'); 3 fclose($fp); 4} else { 5 exit; 6}
条件式となるPHPコードを変数に格納しておき、それをif条件式の中で実行するというのであれば、お勧めはしかねますが以下のような方法があります。 マニュアルを熟読の上、危険性を理解してお使いください。
lang
1<?php 2$str = 'str'; 3$phpstr = 'return !empty($str);'; 4if( eval($phpstr) ){ 5 echo 'true'; 6} else { 7 echo 'false'; 8}
投稿2015/04/10 07:22
編集2015/04/10 07:22総合スコア53
0
何がされたいのかよくわからないのですが、ifの条件を変数にすることは可能ですよ。
lang
1<?php 2$a = 1<2; 3 4if( $a ){ 5 echo "true"; 6} 7else{ 8 echo "false"; 9}
よく使う > < = などは単なる「演算子」の一種です。
ifが見ているのは最終的な条件が true か false かだけですので、
lang
1if(true){ }
と書くこともできますし、
lang
1echo 100<999;
といった、条件式を普段書かないようなところで書くこともできます。
また is_ で始まる関数(is_array)や、質問文で書かれているemptyなどが返すのもBoolean型の値(要はtrueかfalse)ですので、条件式のところによく書くだけで、他の箇所で利用したり、変数に代入することもできます。
#若干嘘をついていますが、イメージとしては上記のような感じです。
投稿2015/04/10 07:00
編集2015/04/10 07:04総合スコア783
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。