文字列があるとします。$char. $char == "*".
$a と $b という 2 つの変数もあり、それぞれ "4" と "5" に相当します。
の結果を取得するにはどうすればよいですか$a $char $b, ie 4 * 5 ?
ありがとう :)
文字列があるとします。$char. $char == "*".
$a と $b という 2 つの変数もあり、それぞれ "4" と "5" に相当します。
の結果を取得するにはどうすればよいですか$a $char $b, ie 4 * 5 ?
ありがとう :)
eval()@konforce の提案どおりに使用できますが、最も安全なルートは次のようなものです。
$left = (int)$a;
$right = (int)$b;
$result = 0;
switch($char){
case "*":
$result = $left * $right;
break;
case "+";
$result = $left + $right;
break;
// etc
}
最も安全な方法は switch コンストラクトです:
function my_operator($a, $b, $char) {
switch($char) {
case '=': return $a = $b;
case '*': return $a * $b;
case '+': return $a + $b;
etc...
}
}
最も簡単だが最も危険な方法は、 を使用することevalです。
$c = eval("return $a $char $b;");
eval()関数を見てください。適切な php コマンドを作成し、eval() 内で実行して結果を抽出する必要があります。
で行うことができますが、eval使用することはお勧めしませんeval。
オペレーターが何でもできる場合がある場合は、使用する前にオペレーターが何であるかを確認する必要があります
switch($char)
{
case '*':
$result= $a * $b;
break;
case '+':
$result= $a + $b;
break;
}
<?php
$a = 'alex';
$b = "alex";
$c = "==";
function abc($a,$b,$c){
$d = 'return ($a '.$c.' $b) ? true : false;';
return eval($d);
}
if(abc($a,$b,$c)){
echo "condition true";
}else{
echo "condition false";
}
// echo $e;
?>