-1

我正在撞墙。很难找到答案,因为我不知道如何表达这个问题,我也想不出合适的关键词。

我正在编写一个视图对象以在我正在编写的 MVC 框架中使用,它通过将脚本输出捆绑在一起来组装页面。我被困在领带部分!

脚本1.php:

<?php

$variable = solution('/path/to/script2.php');
echo $variable;

?>

脚本2.php:

<?php

// generates a random md5 hash just for example

mt_srand(microtime(true)*100000 + memory_get_usage(true));
$randommd5 = md5(uniqid(mt_rand(), true));
echo $randommd5;

?>

每次运行 script1.php 时,如何让这两个脚本返回相同的值?

是否有用于此目的的 PHP 函数?如果没有,是否有一种简单而稳定的方法来实现这一点?

4

3 回答 3

2

就个人而言,我会将它包装在一个函数中。如果你想包含一个函数脚本,你可以这样做:

脚本1.php

 include('script2.php'); //now all functions and variables are available to script1
 $variable = md5function();

脚本2.php

 function md5function() {
   mt_srand(microtime(true)*100000 + memory_get_usage(true));
   $randommd5 = md5(uniqid(mt_rand(), true));
   return ($randommd5);
 }

现在 script2 返回一个变量 ($randomd5),然后将其分配给 script1 中的 $variable。

于 2012-09-26T01:06:54.303 回答
1

http://php.net/manual/en/function.include.php

如果您从包含的文件中“返回”一个值,它应该是 include() 调用的返回值(根据 doco)。

虽然不是一个好方法 - 功能或其他更标准的机制更好。

于 2012-09-26T01:02:27.743 回答
0

这将使您使用函数 - 将 vars 传递给包含文件中的函数并取回一些东西。我已经将它简化了很多,所以它无论如何都没有优化。希望能帮助到你 :)

脚本1.php

<?php

include("script2.php");
echo get_hero_name("batman");

?>

脚本2.php

<?php


function get_hero_name($hero){

switch ($hero) {
    case "batman":
        $return_var = "Bruce Wayne";
        break;
    case "superman":
        $return_var = "Clark Kent";
        break;
    Default:
        $return_var = "Papa Smurf";
        break;
}
return($return_var);

}

?>
于 2012-09-26T01:14:03.847 回答