加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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;                                                       

}

?>

真诚的,你的复制粘贴服务:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读