登录  /  注册
怎么调用类外的变量
php中文网
发布: 2016-06-13 11:59:24
原创
869人浏览过

如何调用类外的变量
本帖最后由 hicoo 于 2014-06-07 10:21:04 编辑

a.php页面是数据链接变量
$dbhost = "localhost";
$dbname = "ffff";
$dbuser = "cccc";
$dbpwd = "123456";
$dbprefix = "user";
$db_language = "gbk";

b.php页面类里面为各种数据库的操作函数
require_once("../data/a.php");
class mydatabase{

// 链接数据库
function opendata($database){
  请问在此方法中,怎么把类外的变量都获取
 }


//查询一条记录
function ReadOne($database){
self::opendata($database);
$rs = mysql_query("SELECT * from fcc where id=1");
$row = mysql_fetch_array($rs);
self::closedata();
return $row["date"];
 }

}
------解决方案--------------------
// 链接数据库
function opendata($database){
  include("../data/a.php");
 }

或者定义成常量

你在类定义外面 require_once("../data/a.php")
将导致数据库相关参数变成全局变量,可能会覆盖掉同名变量
也可以通过 $GLOBALS 数组轻易的观察到
------解决方案--------------------
你要多看基础哦

require_once("../data/a.php");

class mydatabase {

// 链接数据库
function opendata($database) {
//方法一
global $dbhost , $dbname , $dbuser , $dbpwd , $dbprefix , $db_language;
//方法二
require_once("../data/a.php");
//方法三
//在a.php把变量全部定义成常量
define('DB_HOST' , 'test');
//调用的时候直接 使用DB_HOST
echo DB_HOST;
 
}


//查询一条记录
function ReadOne($database) {
self::opendata($database);
$rs = mysql_query("SELECT * from fcc where id=1");
$row = mysql_fetch_array($rs);
self::closedata();
return $row["date"];
 
}

}
登录后复制

------解决方案--------------------
建议a.php的那些变量写进一个同一个数组,也可改成function 然后return这个数组
命名污染 有时候挺恶心的
------解决方案--------------------
一般这些配置信息最好变成常量
------解决方案--------------------
引用:
非常感谢以上两位高手,然后我想把获取变量的代码放在构造函数可以吗,因为我在别的方法里也会用到有些变量,那不是又要引用一次,但是构造函数的多个变量如何返回(return)呢?
class mydatabase{
private $myhost;
private $myuser;
private $mypwd;

public function __construct(){
require_once("../data/a.php");
$this->myhost=$dbhost;
$this->myuser=$dbuser;
$this->mypwd=$dbpwd;
return $this->myhost; 
  请问这里多个变量如何返回呢,测试如果没有return的话,别的方法获取不到
//echo $dbhost;
}

function opendata($database){
$this->__construct();
$linkid = mysql_connect($this->myhost, $this->myuser, $this->mypwd);
}

}

第一种方法,用常量,这样在任何地方都可以使用了
../data/a.php

define('MYHOST', 'localhost');
define('MYUSER', 'cccc');
define('MYPWD', '123456');
?>
登录后复制


require_once("../data/a.php");

class mydatabase{

private $myhost;
private $myuser;
private $mypwd;

public function __construct(){
$this->myhost = MYHOST;
$this->myuser = MYUSER;
$this->mypwd = MYPWD;
}

function opendata($database){
$linkid = mysql_connect($this->myhost, $this->myuser, $this->mypwd);
}

}
?>
登录后复制


第二种,用config数组
../data/a.php

return array(
'myhost' => 'localhost',
'myuser' => 'cccc',
'mypwd' => '123456'
);
登录后复制


class mydatabase{

相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学