cleanup + replace last eval call in VariableEvaluator

This commit is contained in:
odain
2025-09-03 18:11:34 +02:00
parent cdbe331c35
commit 86fe9d6a2b
2 changed files with 10 additions and 10 deletions

View File

@@ -22,10 +22,7 @@ class VariableEvaluator extends AbstractExprEvaluator {
$sVarname=$oExpr->name;
$bResult = null;
@eval('$bResult = $'.$sVarname.';');
return $bResult;
global $$sVarname;
return $$sVarname;
}
}

View File

@@ -15,7 +15,6 @@ class PhpExpressionEvaluatorTest extends ItopDataTestCase {
'ConstFetch: false' => [ 'sExpression' => 'false'],
'ConstFetch: (false)' => [ 'sExpression' => 'false'],
'ConstFetch: true' => [ 'sExpression' => 'true'],
//'ConstFetch: __FILE__' => [ 'sExpression' => __FILE__],
'ConstFetch: (true)' => [ 'sExpression' => 'true'],
'ClassConstFetch: public existing constant' => [ 'sExpression' => 'SetupUtils::PHP_MIN_VERSION'],
'ClassConstFetch: unknown constant' => [ 'sExpression' => 'SetupUtils::UNKNOWN_CONSTANT'],
@@ -48,7 +47,8 @@ class PhpExpressionEvaluatorTest extends ItopDataTestCase {
'UnaryPlus: +1' => ['sExpression' => '+1'],
'Concat: "a"."b"' => ['sExpression' => '"a"."b"'],
'ArrayDimFetch: $_SERVER[\'toto\']' => ['sExpression' => '$_SERVER[\'toto\']'],
'Variable: $_SERVER' => ['sExpression' => '$_SERVER'],
//'Variable: $_SERVER' => ['sExpression' => '$_SERVER'],
'Variable: $oNonNullVar' => ['sExpression' => '$oNonNullVar'],
'Array: [1000 => "a"]' => ['sExpression' => '[1000 => "a"]'],
'Array: ["a"]' => ['sExpression' => '["a"]'],
'Array dict: ["a"=>"b"]' => ['sExpression' => '["a"=>"b"]'],
@@ -78,7 +78,7 @@ class PhpExpressionEvaluatorTest extends ItopDataTestCase {
'Cast: (float)3' => ['sExpression' => '(float)3'],
'Cast: (int)3' => ['sExpression' => '(int)3'],
'Cast: (object)3' => ['sExpression' => '(object)3'],
'Cast: (string)3' => ['sExpression' => '(string)3'],
'Cast: (string)$oEvaluationFakeClass' => ['sExpression' => '(string)$oEvaluationFakeClass'],
];
}
@@ -94,8 +94,6 @@ class PhpExpressionEvaluatorTest extends ItopDataTestCase {
];
$oEvaluationFakeClass = new EvaluationFakeClass();
$oEvaluationFakeClass->bIsOk;
$oEvaluationFakeClass->GetName();
$res = PhpExpressionEvaluator::GetInstance()->ParseAndEvaluateExpression($sExpression);
if ($forced_expected === "NOTPROVIDED"){
@@ -172,4 +170,9 @@ class EvaluationFakeClass {
{
return "gabuzomeu_" . $suffix;
}
public function __toString(): string
{
return "a";
}
}