ホームページ >バックエンド開発 >PHPチュートリアル >クラス外で変数を呼び出す方法

クラス外で変数を呼び出す方法

WBOY
WBOYオリジナル
2016-06-13 11:59:241237ブラウズ

クラス外の変数を呼び出す方法

この投稿は 2014-06-07 10:21:04 に hicoo によって最終編集されました a.php ページはデータ リンク変数です
$dbhost = "localhost";
$dbname = "ffff";
$dbuser = "cccc";
$dbpwd = "123456";
$dbprefix = "user";
$db_lang = "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 />

-- ---解決策--- ------------------ a.php の変数は同じ配列に書き込むことをお勧めします。それを関数に変更して、配列
を返し、それに名前を付けることができます。 汚染は時々非常に嫌なものです

------解決策----------一般的にこれらの設定情報は定数になる方が良いです

-----解決策---------
Quote:上記の 2 人の専門家に感謝します。次に、他のメソッドでもいくつかの変数を使用するため、コンストラクターに変数を取得するコードを記述したいと思います。もう一度引用する必要はありませんが、コンストラクターの複数の変数を返すにはどうすればよいですか?
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;
ここで複数の変数を返すにはどうすればよいですか? テストで戻りがない場合、他のメソッドでは取得できません
//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 />

<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 />


2 番目に、構成配列を使用します
../data/a.php
<br /><?php<br />return array(<br />    'myhost' => 'localhost',<br />    'myuser' => 'cccc',<br />    'mypwd' => '123456'<br />);<br />

<?php<br>class mydatabase{<br><div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。