Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
让一个PHP脚本执行不同的PHP脚本并将其返回的值赋给变量的最简单方法是什么?_Php - Fatal编程技术网

让一个PHP脚本执行不同的PHP脚本并将其返回的值赋给变量的最简单方法是什么?

让一个PHP脚本执行不同的PHP脚本并将其返回的值赋给变量的最简单方法是什么?,php,Php,我用这个碰壁了。很难找到答案,因为我不知道该如何表达这个问题,而且我也想不出合适的关键词 我正在编写一个视图对象,用于我正在编写的MVC框架,它通过将脚本输出绑定在一起来组装页面。我被拴在一起了 script1.php: <?php $variable = solution('/path/to/script2.php'); echo $variable; ?> script2.php: <?php // generates a random md5 hash jus

我用这个碰壁了。很难找到答案,因为我不知道该如何表达这个问题,而且我也想不出合适的关键词

我正在编写一个视图对象,用于我正在编写的MVC框架,它通过将脚本输出绑定在一起来组装页面。我被拴在一起了

script1.php:

<?php

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

?>

script2.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函数?如果没有,是否有一种简单而稳定的方法来实现这一点?

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


但这不是一个很好的方法-函数或其他更标准的机制更好。

就我个人而言,我会将其封装在函数中。如果要包含函数脚本,可以执行以下操作:

script1.php

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

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

?>
脚本2.php

 function md5function() {
   mt_srand(microtime(true)*100000 + memory_get_usage(true));
   $randommd5 = md5(uniqid(mt_rand(), true));
   return ($randommd5);
 }
<?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);

}

?>

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

这将帮助您处理函数—将变量传递给包含文件中的函数,然后返回一些内容。我已经简化了一个合理的数量,所以它是无论如何优化。希望有帮助:)

script1.php

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

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

?>

脚本2.php

 function md5function() {
   mt_srand(microtime(true)*100000 + memory_get_usage(true));
   $randommd5 = md5(uniqid(mt_rand(), true));
   return ($randommd5);
 }
<?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);

}

?>


您读过吗?我了解基本功能,包括:,我只是希望有一个解决方案,可以让script2.php独立于它在文件系统中的位置执行,这样它就可以使用相对的文件路径并从任何地方被调用。这与我对你的问题的解释有点不同。我想我的措辞很糟糕,因为每个人都在做相同的假设。