php – 如何从不同的文件访问函数内的变量?
发布时间:2020-12-13 16:59:18 所属栏目:PHP教程 来源:网络整理
导读:我有两个文件,一个functions.php,它包含一个连接数据库的PDO对象,包含作为变量的列和一个index.php,用于输出包含数据的变量.数据库连接工作但是当我尝试从我的函数回显变量时,它返回undefined,我做错了什么; 的functions.php ? php function connectDB() { $
我有两个文件,一个functions.php,它包含一个连接数据库的PDO对象,包含作为变量的列和一个index.php,用于输出包含数据的变量.数据库连接工作但是当我尝试从我的函数回显变量时,它返回undefined,我做错了什么;
的functions.php <? php function connectDB() { $hostname = 'xxxxxxxx'; $db = 'xxxxxxx'; $user = 'xxxxxxxx'; $pass = 'xxxxxxx'; $dbh = new PDO("mysql:host=$hostname; dbname=$db; charset=utf8",$user,$pass,array(PDO::ATTR_EMULATE_PREPARES => false,PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); $sql = "//my query"; $query = $dbh->prepare($sql); $query->execute(array('//value','//value')); $query->setFetchMode(PDO::FETCH_ASSOC); while ($r = $query->fetch()): $var1 = $r['column1']; $var2 = $r['column2']; $var3 = $r['column3']; $var4 = $r['column4']; $var5 = $r['column5']; endwhile; } ?> 的index.php <?php include 'functions.php'; ?> <?php try { connectDB(); echo 'You are connected to Database'; echo $var1; $dbh = null; } catch(PDOException $e) { echo $e -> getMessage(); } ?> 解决方法
这些变量默认是connectDB()函数的本地变量,因此您必须事先在全局范围内声明它们,或者使用$GLOBALS来设置它们:
方法1 <? php $var1 = ''; $var2 = ''; $var3 = ''; $var4 = ''; $var5 = ''; function connectDB() { $hostname = 'xxxxxxxx'; $db = 'xxxxxxx'; $user = 'xxxxxxxx'; $pass = 'xxxxxxx'; $dbh = new PDO("mysql:host=$hostname; dbname=$db; charset=utf8",'//value')); $query->setFetchMode(PDO::FETCH_ASSOC); while ($r = $query->fetch()): $var1 = $r['column1']; $var2 = $r['column2']; $var3 = $r['column3']; $var4 = $r['column4']; $var5 = $r['column5']; endwhile; } ?> 方法2 <? php function connectDB() { $hostname = 'xxxxxxxx'; $db = 'xxxxxxx'; $user = 'xxxxxxxx'; $pass = 'xxxxxxx'; $dbh = new PDO("mysql:host=$hostname; dbname=$db; charset=utf8",'//value')); $query->setFetchMode(PDO::FETCH_ASSOC); while ($r = $query->fetch()): $GLOBALS['var1'] = $r['column1']; $GLOBALS['var2'] = $r['column2']; $GLOBALS['var3'] = $r['column3']; $GLOBALS['var4'] = $r['column4']; $GLOBALS['var5'] = $r['column5']; endwhile; } ?> 真诚的,你的复制粘贴服务:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |