使用字符串值作为/ else表达式

Lis*_*isa 3 php

这可能最愚蠢的问题,答案可能不是,但是......

是否可以在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的值作为变量的名称.

所以我想我正在寻找的有点像'变量代码'而不是'变量变量'.

hak*_*kre 6

我必须猜一下,也许你想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)