Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.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/variables/2.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_Variables_Scripting - Fatal编程技术网

在脚本之间传递PHP变量

在脚本之间传递PHP变量,php,variables,scripting,Php,Variables,Scripting,我在这方面有困难,所以我在谷歌上搜索了一下,也在这里读了一些东西。最后,我尝试了W3网站的两个小摘录,分别在Z1.php和Z2.php文件中,如下所示: Z1 我在这行中加入了Z2-Z2是: <?php session_start(); (note: I tried with and without this) ?> <html> <body> <?php // Echo session variables that were set on pre

我在这方面有困难,所以我在谷歌上搜索了一下,也在这里读了一些东西。最后,我尝试了W3网站的两个小摘录,分别在Z1.php和Z2.php文件中,如下所示:

Z1


我在这行中加入了Z2-Z2是:

<?php
session_start(); (note: I tried with and without this)
?>
<html>
<body>

<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html> 

我把这些都放进Zend,然后得到,作为输出

最喜欢的颜色是。
最喜欢的动物是

我需要它来让我能够使用phpqrcode,它说关于调用QR码:“警告!它应该是第一个也是唯一一个由脚本生成的输出,否则其余的输出将进入PNG二进制文件,肯定会破坏它”,当然,它确实会这样做。所以我认为应该有两个脚本

我以前从未尝试过在脚本之间传递变量,因此希望您能对我的尝试给予批判性的关注,以理解此方法并使我走上正确的道路


Paul

您在这里面临的问题是在第一个文件中包含
z2.php
脚本。现在想象一下
include
就像第二个脚本中复制并粘贴的
php
代码一样。您应该启动
会话
,以获得变量的挂起状态,但在创建变量之前尝试
回显它们。在定义了
会话
变量之后,尝试包含
z2.php
,看看它是如何工作的

简单地说,试着去掉任何
包含的
。你从学校拿的。只需像您那样创建两个单独的文件。调用
session\u start()
并创建
session
变量,尝试显式访问另一个文件,看看是否可以访问它们

从—

包含文件时,它包含的代码将继承包含文件所在行的变量范围。从该点开始,调用文件中该行可用的任何变量都将在被调用文件中可用。但是,包含文件中定义的所有函数和类都具有全局作用域

当您像以前那样在另一个脚本中包含一个脚本时,实际上并不是在传递会话变量。事实上,您所做的一切都可以在根本不使用会话的情况下实现

//foo.php
<?php
$color = 'green'; 
$fruit = 'apple';
?>

//bar.php
<?php
echo "A $color $fruit"; // A
include 'foo.php';
echo "A $color $fruit"; // A green apple
?>

希望这能让您从正确的方向开始。

感谢您的明确回答。在你的帮助下,我了解了更多(并且让我的脚本做了我想做的!)
//foo.php
<?php
$color = 'green'; 
$fruit = 'apple';
?>

//bar.php
<?php
echo "A $color $fruit"; // A
include 'foo.php';
echo "A $color $fruit"; // A green apple
?>
header("Location: z2.php");
die();