(以下)のようなことをしたいのですが、可能ですか?
$operator = >=;
if($value.$operator 400){
// ...
}
演算子を変数として保存することはできませんが、関数を保存することはできます (PHP 5.3 以降)。それを試してください:
$operator = function($a){
return $a >= 400;
}
if($operator($value)){
}
または、「通常の」関数を使用できると思います。
function operator($a){
return $a >= 400;
}
if(operator($value)){
}
あなたができるもう一つのこと(しかし絶対にすべきではありません)は次のものを使用していeval()
ます:
<?php
$value = 400;
$operator = '>=';
eval('if('.$value.$operator.' 400) echo "something";');
繰り返しますが、これは実行できることを示すためのものですが、絶対に使用しないでください。使用しeval()
ないと、私が個人的に子猫を殺します。
そして、このようなものが必要だと思うなら、あなたのデザインには大きな欠陥があると真剣に考えています.
@rocket がコメントで語ったように。これを行うよりクリーンな方法は次のとおりです。
<?php
$value = 400;
$operator = '>=';
eval("\$result = $value$operator 400;");
if ($result) {
echo 'Something';
}
いいえ、これがよりクリーンであるということは、使用できるという意味ではありません。あなたがこれを使うなら、私はあなたを追い詰めるつもりです;)