Php 求值表达式以计算match()、combine、between

Php 求值表达式以计算match()、combine、between,php,eval,logical-operators,Php,Eval,Logical Operators,我需要对like、between、contains和match()的表达式进行php评估。 我已经为其他逻辑运算符做过了,它工作得很好 例如 但我必须评估这个表达式: echo eval("return ('xxxx.match(xxx) != null');"); 它总是返回真的。有人能解释一下如何计算这类表达式吗。首先,这里是一个如何计算preg\u match() 这将输出:1 语法应该是'xxxx.match(xxx)!=null“不是有效的php语法,因此不能直接在其上使用eval(

我需要对like、between、contains和
match()
的表达式进行php评估。 我已经为其他逻辑运算符做过了,它工作得很好

例如

但我必须评估这个表达式:

echo eval("return ('xxxx.match(xxx) != null');");

它总是返回真的。有人能解释一下如何计算这类表达式吗。

首先,这里是一个如何计算
preg\u match()

这将输出:1

语法应该是
'xxxx.match(xxx)!=null“
不是有效的php语法,因此不能直接在其上使用
eval()
——它必须是有效的php。在javascript示例中,
xxxx
xxx
是变量。它们需要重写,以便在php中进行计算。在我的示例中,我将语句重写为
eval(“return(match('$xxxx','$xxx')!==null);”

您可以编写一个函数,从表中传递变量,并使用尽可能多的比较和代码行执行所需的任何计算

例如:

$xxxx = "abFc";
$xxx = "F";

$eval = eval("return (match('$xxxx', '$xxx') !== null);");
if ($eval) {
    echo "true";
} else {
    echo "false";
}


function match($string, $regex){
    // match: executes a search for a match in a string. It returns an array of information or null on a mismatch.    

    preg_match_all('#' . $regex . '#', $string, $amatch);
    if(count($amatch[0]) > 0){
        return $amatch[0];
    } else {
        return null;
    }   
}

另外,请阅读有关使用
eval()
的警告,您需要确保传递给它的数据是安全的。

如果您可以发布xxx.match(xxx)的实际代码,这会有所帮助。{(EFT.match(“F”)!=null}这是实际的代码是match()外部函数吗?什么是EFT?我不认为EFT.match()是php代码。在javascript中,我们有一个表达式来检查eval{(EFT.match(“F”)!=null},但在php中,所有这样做的可能性是什么,以及对于包含,例如,between,请看一看。您可能正在查找preg_match($EFT,“F”)或类似的内容;这是可行的,但我如何使用逻辑运算符==,!=eval(“返回('xxxx.match(xxx)!=null');”;像这样,我已经用我相信你会问的问题更新了代码,用xxxx和xxx变量将js语法翻译成php,并计算!==。您只需将==替换为!==如果需要的话。如果我错过了你的问题,请回复。请重新阅读我的答案-我已经对你的求值请求发表了评论
eval(“return('xxxx.match(xxx)!=null')因为它不是有效的php语法
$test = "abFc";
echo eval("return preg_match('#F#', '$test');");
$xxxx = "abFc";
$xxx = "F";

$eval = eval("return (match('$xxxx', '$xxx') !== null);");
if ($eval) {
    echo "true";
} else {
    echo "false";
}


function match($string, $regex){
    // match: executes a search for a match in a string. It returns an array of information or null on a mismatch.    

    preg_match_all('#' . $regex . '#', $string, $amatch);
    if(count($amatch[0]) > 0){
        return $amatch[0];
    } else {
        return null;
    }   
}