本帖最后由 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 数组轻易的观察到
------解决方案-------------------- 你要多看基础哦
<br />require_once("../data/a.php");<br /><br />class mydatabase {<br /><br /> // 链接数据库<br /> function opendata($database) {<br /> //方法一<br /> global $dbhost , $dbname , $dbuser , $dbpwd , $dbprefix , $db_language;<br /> //方法二<br /> require_once("../data/a.php");<br /> //方法三<br /> //在a.php把变量全部定义成常量<br /> define('DB_HOST' , 'test');<br /> //调用的时候直接 使用DB_HOST<br /> echo DB_HOST;<br /> <br /> }<br /><br /><br /> //查询一条记录<br /> function ReadOne($database) {<br /> self::opendata($database);<br /> $rs = mysql_query("SELECT * from fcc where id=1");<br /> $row = mysql_fetch_array($rs);<br /> self::closedata();<br /> return $row["date"];<br /> <br /> }<br /><br />}<br /> Copy after login
------解决方案-------------------- 建议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 <br /><?php<br /> define('MYHOST', 'localhost');<br /> define('MYUSER', 'cccc');<br /> define('MYPWD', '123456');<br />?><br /> Copy after login
<br /><?php<br />require_once("../data/a.php");<br /><br />class mydatabase{<br /><br /> private $myhost;<br /> private $myuser;<br /> private $mypwd;<br /><br /> public function __construct(){<br /> $this->myhost = MYHOST;<br /> $this->myuser = MYUSER;<br /> $this->mypwd = MYPWD;<br /> }<br /><br /> function opendata($database){<br /> $linkid = mysql_connect($this->myhost, $this->myuser, $this->mypwd);<br /> }<br /><br />}<br />?><br /> Copy after login
第二种,用config数组 ../data/a.php <br /><?php<br />return array(<br /> 'myhost' => 'localhost',<br /> 'myuser' => 'cccc',<br /> 'mypwd' => '123456'<br />);<br /> Copy after login
<br><?php <br />class mydatabase{<div class="clear">
</div> Copy after login