if で値の計算を渡すにはどうすればよいですか?

WBOY
リリース: 2016-06-23 13:28:01
オリジナル
1085 人が閲覧しました

$conditin = ' 8>0 ';

if($conditin){ $value = 1;} else { $value = 2; }


$conditin が外部から渡される
通常の条件文を実行してみてはいかがでしょうか?

$conditin= '3' が 1' より大きい場合、異常な条件文と判断します

If $conditin = ' 8>0 '; then return 1

If $conditin = ' 8
しかし、リスクを回避するにはどうすればよいでしょうか?


ディスカッションへの返信 (解決策)

eval() は、実行されたコードで値が返されない限り NULL を返し、関数はその値を返します。実行されたコードに解析エラーがある場合、eval() は FALSE を返し、後続のコードは正常に実行されます。 set_error_handler() を使用して eval() の解析エラーを捕捉できません。

は次のように変更できます:

$str = '8>0';$condition = 'if(' . $str . '){$value = 1;}else{$value = 2;}';eval($condition);var_dump($value);
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート