有谁知道下面的代码出了什么问题,导致我无法在File2.php
$myusername
File1.php
中打印变量{。}}。
我只想打印变量$myusername
,或者如果您知道如何传递对我来说非常有用的变量的任何其他方式。
以下是我的例子:
File1.php
<?php
$myusername=$_POST['myusername'];
function getusername()
{
return $myusername;
}
?>
File2.php
<?php
require_once('File1.php');
getusername();
?>
答案 0 :(得分:4)
我主张使用$_SESSION
。
PHP中的会话支持包含一种保留某些数据的方法 跨后续访问。这使您可以构建更多自定义 应用程序并增加您的网站的吸引力。
访问您网站的访问者被分配了一个唯一的ID,即 所谓的会话ID。这可以存储在用户的cookie中 在URL中传播或传播。
会话支持允许您在请求之间存储数据 $ _SESSION超全局数组。当访问者访问您的站点时,PHP 将自动检查(如果session.auto_start设置为1)或打开 您的请求(显式通过session_start()或隐式通过 session_register())是否已发送特定会话ID 请求。如果是这种情况,则先前保存的环境是 重新创建。
<强> File1.php 强>
<?php
session_start();
$_SESSION['myusername'] = (isset($_POST['myusername']) ? $_POST['myusername'] : '');
?>
<强> File2.php 强>
<?php
session_start();
echo $_SESSION['myusername'];
?>
您还会注意到,在提供的File1.php
代码中,$_SESSION['myusername']
声明正在检查是否首先提供了值。如果是,则将会话变量设置为该值,否则将其设置为空。
答案 1 :(得分:3)
当您尝试从函数中访问它时,您需要将$myusername
声明为全局,您还需要以某种方式打印(例如echo
);)
File1.php
<?php
$myusername=$_POST['myusername'];
function getusername()
{
global $myusername; // declare as global
return $myusername;
}
?>
File2.php
<?php
require_once('File1.php');
echo getusername(); // echo value
?>
了解详情:PHP Variable scope。 您也可以通过$_SESSION传递它。
答案 2 :(得分:1)
按会话。
File1.php
<?php
session_start();
$_SESSION['myusername'] = $_POST['myusername'];
File2.php
<?php
session_start();
echo $_SESSION['myusername'];