0

我将在两个必需/包含的 php 文件之间传递一些值,例如:

mysql.php:

<?php
    $conn = mysql_pconnect("mysql.host.com","root","password") or trigger_error(mysql_error(),E_USER_ERROR);
?>

有趣的.php:

<?php
    function fun() {
    mysql_select_db($conn);
    }
?>

主.php:

<?php
    require_once('mysql.php');
    require_once('fun.php');
    fun();
    //Output: Error that can't find $conn
?>

对不起,我描述得太简单了。我发现如果代码直接运行,我可以通过两个包含的文件传递任何东西。但如果其中一个写成函数(如 fun.php),则 fun() 无法读取 mysql.php 的值。任何人都可以给我一个解决方案?原谅我英语不好,PHP知识差> <

更新:我发现的解决方案之一是在每个函数中插入 mysql.php 的代码,例如:fun.php:

<?php
    function fun() {
        $conn = mysql_pconnect("mysql.host.com","root","password") or trigger_error(mysql_error(),E_USER_ERROR);
        mysql_select_db($conn);
    }
?>

但问题是它非常烦人(因为我写了很多函数)并且可能不安全,因为它存储了 mysql 服务器的用户名和密码。

4

2 回答 2

0

你的问题非常令人困惑。如果我理解它,那么答案取决于您如何使用包含的信息。

如果需要在函数中使用变量,则需要在函数开头将变量声明为“全局”(如果您是 OOP,则为 Class)。

例如,如果您的 main.php 文件定义了以下示例函数:

function exampleFunction()
{
    global $var1; //from inc1.php
    global $var2; //from inc2.php
    //now do something with the variables and probably return a result
}

如果您正在编写 OOP,

class SomeClass
{
      global $var1; //from inc1.php
      global $var2: //from inc2.php
      private $var3; //local to this class
}
于 2012-04-05T22:10:16.290 回答
0

尝试使用全局变量 $var1 可以称为
$GLOBALS['var1'];

$_GET['var1'] = 1; $var2 = $_GET['var1'];

于 2012-04-05T21:36:07.680 回答