ホームページ >バックエンド開発 >PHPチュートリアル >PHPの文字列をif条件文に変換する方法

PHPの文字列をif条件文に変換する方法

WBOY
WBOYオリジナル
2016-06-13 12:24:171373ブラウズ

PHP 文字列を if 条件文に変換する方法
例: $condition = "2 == 2 && 3 == 5";
if ($condition) {
echo 1;
}
$conditionをifで認識できる条件に変換するにはどうすればよいですか?このように直接判定すると文字列定数とみなされ、値はtrueとなります
-----解決案---------- ---

 if (eval("return $condition;")) {


-----ソリューションのアイデア--------------------- -

引用:
<br />        $condition = "2<=2 && 2>=1 && (snb === snb <br><font color='#FF8000'>------解决思路----------------------</font><br> snb === hfu)";<br />	if (eval("return $condition;")) {<br />		echo 1;<br />	}else {<br />		echo 2;<br />	}<br />	<br />	if (2<=2 && 2>=1 && ('snb' === 'snb' <br><font color='#FF8000'>------解决思路----------------------</font><br> 'snb' === 'hfu')) {<br />		echo 3;<br />	}

そうですね、最初の段落の $condition と 2 番目の段落の if の内容は同等ですよね。 ? それは、一方が文字列であり、もう一方が通常の if 条件であるというだけです。
2 番目の段落は問題なく実行されます。
最初の段落で eval() を呼び出すと、未定義定数エラーが報告されます。ここでエスケープする必要がありますか?

あなたの本来の意図は ('snb' === 'snb'
-----解決策のアイデア------------- ---------
'snb' === 'hfu') しかし、あなたは (snb === snb
------解決策のアイデア- - --------------------
snb === hfu) $ 記号さえない変数は当然定数として理解されますが、定数は定義されていません。
------解決策のアイデア----------------------
変数で変換します。それ以外の場合は snb とhfu は定数として解釈されます。
$snb="snb";
$hfu="hfu";
$condition = '2<=2 && 2>=1 && ($snb === $snb
------解决思路----------------------
$snb === $hfu)';
if (eval("return $condition;")) {
echo 1;
}else {
echo 2;
}
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。