这可能是最愚蠢的问题,答案可能不是,但是......
是否可以在if语句的表达式中使用字符串的值?例如,说我通过了
'if strcasecmp("hello", "Hello") == 0'
Run Code Online (Sandbox Code Playgroud)
到函数并调用它$ string,然后我可以使用该值作为if语句的条件评估吗?
if (the value of $string) {}
Run Code Online (Sandbox Code Playgroud)
我知道eval()将执行一个字符串,就像它是PHP代码一样,但实际执行它并返回null/false,而不是仅仅允许围绕字符串的PHP来处理字符串的内容.我也知道你可以使用$ {$ varname}来使用变量变量,这将告诉php使用$ varname的值作为变量的名称.
所以我想我正在寻找的有点像'变量代码'而不是'变量变量'.
我必须猜一下,也许你想return来自eval?
if (eval('return strcasecmp("hello", "Hello") == 0;')) {}
Run Code Online (Sandbox Code Playgroud)
此外,有闭合可能会增加一点流动性:
$if = function($string) {
return eval(sprintf('return (%s);', $string));
}
$string = 'strcasecmp("hello", "Hello") == 0';
if ($if($string)) {
...
}
Run Code Online (Sandbox Code Playgroud)