I have a variable $allrule = '(1 == 2) && (2 == 2)';
when i check if($allrule)
, it returns true because $allrule
is treated as string. So i want to convert $allrule
as condition of if statement. how can we do it.
Asked
Active
Viewed 588 times
1

Jay Blanchard
- 34,243
- 16
- 77
- 119

Priye Ranjan
- 422
- 4
- 20
-
Convert it to what? `$allrule` is a variable containing the string '(1 == 2) && (2 == 2)'. – Jay Blanchard Jun 09 '15 at 14:27
-
You would have to use `evil()` or write some switch statements. But why do you want to do this? – Rizier123 Jun 09 '15 at 14:28
-
Eval not evil @Rizier123 – Goikiu Jun 09 '15 at 14:29
-
3eval **IS** evil, @goikiu... it should never be used... – Marc B Jun 09 '15 at 14:29
-
1@Goikiu I know what I'm writing... – Rizier123 Jun 09 '15 at 14:29
-
@JayBlanchard $allrule is string but i want this will run as a conditional statement. – Priye Ranjan Jun 09 '15 at 14:43
1 Answers
3
This solution uses eval() which is pure evil, but since it wasn't stipulated not to do so...
$allrule = '(1 == 2) && (2 == 2)';
$result = eval("return (".$allrule.");"); // $result will be false
Expanded Example*:
$allrule = "(1433861812 > 1433694000) && (1433861812 > 1433771400) && (1433861812 > 1433944200)";
$result = eval("return (".$allrule.");");
if($result) {
echo "true";
} else {
echo "false"; // will echo "false"
}
*from comments
-
Provided solution is working fine but it return parse error. Parse error: syntax error, unexpected ')' – Priye Ranjan Jun 09 '15 at 14:51
-
-
@Darkes My real $allrule = "(1433861812 > 1433694000) && (1433861812 > 1433771400) && (1433861812 > 1433944200)"; – Priye Ranjan Jun 09 '15 at 14:59
-
@Darkes i modified it but it still gives me parse error; Can you provide the actual eval statement for provided string. $allrule = "(1433861812 > 1433694000) && (1433861812 > 1433771400) && (1433861812 > 1433944200)" – Priye Ranjan Jun 09 '15 at 16:19
-
Hello @RanjanKumar, I've added your allrule to my answer. Your allrule parses properly. (Please pardon the delay in my responding) – Drakes Jun 10 '15 at 02:38
-
1