PHP使用' eval'作为函数(获取返回值)

时间:2015-09-24 20:57:27

标签: php 4d-database

背景

我正在使用4D server。 4D有一个内置的PHP processor,但是很奇怪。我必须在我的网页上启动内联4D脚本,然后我必须调用PHP Execute,并为其指定.php文件的路径。

4D剧本

C_TEXT($result)
C_BOOLEAN($isOK)
$isOK:=PHP Execute("C:\\php\\myPHPFile.php";"my_function";$result)
ALERT($Result)

myPHPFile.php

<?php
    function my_function() {
        return 'Hello World';
    }
?>

目标

我希望能够在我的网站上写这个:

<?php echo 'Hello World'; ?>

并处理完毕。我差点搞清楚了。如果我首先通过服务器代码(4D可以做到这一点)将其转换为:

C_TEXT($result)
C_BOOLEAN($isOK)
$isOK:=PHP Execute("";"echo 'Hello World'";$result)
ALERT($Result) 

您应该能够在没有.php文件的情况下直接运行PHP本机函数。你认为那会奏效。事实证明它没有。

所以我尝试了这个:

C_TEXT($result)
C_BOOLEAN($isOK)
$isOK:=PHP Execute("";"echo";$result;"Hello World") // I can send parameters
ALERT($Result) 

仍然无法运作。事实证明我需要使用函数来评估代码。

C_TEXT($result)
C_BOOLEAN($isOK)
$isOK:=PHP Execute("";"eval";$result;"return 'Hello World;'") // I can send parameters
ALERT($Result) 

应该{​​{1}}发送给"return 'Hello World';"。好吧,STILL不起作用,因为我发现eval()实际上并不是一个功能。所以我需要知道的是,在所有这些背景之后,是:

问题

PHP中是否有一个本机函数可以这样工作:

eval()

1 个答案:

答案 0 :(得分:2)

你非常接近,你的return声明中的分号位于错误的位置。试试这个:

$isOK:=PHP Execute("";"eval";$result;"return 'Hello World';")