PHPで変数を演算子として使用する

operators php
PHPで変数を演算子として使用する

私はこれをやろうとしています:

$identifier_1 = ">";
$identifier_2 = ">";
$relation = "and";

if($value $identifier_1 3 $relation $value $identifier_1 300)

以下を表します:

if($value > 3 and $value > 300)

  1  1


ベストアンサー

基本的に3つの方法があります。

  1. evalを使用します。 これは強力なオプションですが、ユーザー入力が関係する場合は非常に危険です。

$op1 = ">";
$op2 = ">";
$op3 = "and";

$expr = "100 $op1 200 $op3 300 $op2 200";
eval("\$result = $expr;");

{空} II。 演算子の代わりに関数を使用する

function more($a, $b) { return $a > $b; }
function less($a, $b) { return $a < $b; }
function _and($a, $b) { return $a && $b; }

$op1 = 'more';
$op2 = 'less';
$op3 = '_and';

$result = $op3($op1(100, 200), $op2(200, 300));

{空} III。 パーサーを作成し、独自に式を評価します。 これは何らかの方法でこれを行う「最もクリーンな」方法ですが、プログラムするのは非常に難しい場合があります-サポートする演算子に依存します。

2


タイトルとURLをコピーしました