0

2つの必須/インクルードされたphpファイルの間でいくつかの値を渡します。例:

mysql.php:

<?php
    $conn = mysql_pconnect("mysql.host.com","root","password") or trigger_error(mysql_error(),E_USER_ERROR);
?>

fun.php:

<?php
    function fun() {
    mysql_select_db($conn);
    }
?>

main.php:

<?php
    require_once('mysql.php');
    require_once('fun.php');
    fun();
    //Output: Error that can't find $conn
?>

簡単すぎて申し訳ありません。コードを直接実行すれば、含まれている2つのファイルを介して何でも渡すことができることがわかりました。しかし、それらの1つが関数(fun.phpなど)として書き込む場合、fun()はmysql.phpの値を読み取ることができません。誰でも私に解決策を与えることができますか?私の悪い英語とPHPの貧弱な知識を許してください><

更新:私が見つけた解決策の1つは、次のような各関数にmysql.phpのコードを挿入することです。fun.php:

<?php
    function fun() {
        $conn = mysql_pconnect("mysql.host.com","root","password") or trigger_error(mysql_error(),E_USER_ERROR);
        mysql_select_db($conn);
    }
?>

しかし、問題は、それが非常に煩わしく(私が大量の関数を書いたため)、mysqlサーバーのユーザー名とパスワードが保存されているため安全ではない可能性があることです。

4

2 に答える 2

0

グローバルを使用してみてください$var1は
$GLOBALS['var1']として呼び出すことができます。
または
$_GET['var1'] = 1; $ var2 = $ _GET ['var1'];

于 2012-04-05T21:36:07.680 に答える
0

あなたの質問は非常に紛らわしいです。私がそれを理解しているなら、答えはあなたが含まれている情報をどのように使用しているかに依存します。

関数で変数を使用する必要がある場合は、関数の先頭で変数を「グローバル」(またはOOPの場合はクラス)として宣言する必要があります。

たとえば、main.phpファイルで次の関数例が定義されている場合:

function exampleFunction()
{
    global $var1; //from inc1.php
    global $var2; //from inc2.php
    //now do something with the variables and probably return a result
}

OOPをコーディングしている場合、

class SomeClass
{
      global $var1; //from inc1.php
      global $var2: //from inc2.php
      private $var3; //local to this class
}
于 2012-04-05T22:10:16.290 に答える