Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP静态变量问题_Php_Variables_Static - Fatal编程技术网

PHP静态变量问题

PHP静态变量问题,php,variables,static,Php,Variables,Static,好的,这是我正在处理的一个函数。现在请注意,我是编程新手,这可能比我所问的有更多的错误。基本上,如何设置变量: ${"MySQL_Connection_" . $MySQL_Connection} 当我用不同的“模式”调用函数时使用它。我试过使用: static 但从你们所说的话来看。关于它的用途,我得到了严重的错误信息。以下是我的“真实生活”示例: 奇怪的是,我一直在这个网站上回答我自己的问题,这甚至违背了拥有这个网站的意义,但我发现了如何创建和使用更有意义的类。希望有人会说要学习课程,并

好的,这是我正在处理的一个函数。现在请注意,我是编程新手,这可能比我所问的有更多的错误。基本上,如何设置变量:

${"MySQL_Connection_" . $MySQL_Connection}
当我用不同的“模式”调用函数时使用它。我试过使用:

static
但从你们所说的话来看。关于它的用途,我得到了严重的错误信息。以下是我的“真实生活”示例:


奇怪的是,我一直在这个网站上回答我自己的问题,这甚至违背了拥有这个网站的意义,但我发现了如何创建和使用更有意义的类。希望有人会说要学习课程,并给出一个班级的例子来做到这一点。但我还是自己想出来了。再次感谢你的帮助。伟大的网站。这里的每个人都很友善,乐于助人。就像在国税局开派对一样

class DB {

/*

// Layout

// $DB1 -> Set_Connection_Pass_Info ("default");
// $DB1 -> Set_Connection_Fail_Info ("default");
// $DB1 -> Connection_Report_Short ();
// $DB1 -> Connection_Report_Long ();
// $DB1 -> Set_Query_Pass_Info ("default");
// $DB1 -> Set_Query_Fail_Info ("default");
// $DB1 -> Query_Report_Short ();
// $DB1 -> Query_Report_Long ();

include "class.php";

$DB1 = new DB;

//  Connection Name - Server Name - User Name - User Password - Database Name: "null" if no Database
$DB1 -> Connect("Connection_1","localhost","root","UserMain1324!","Database_Test_1");

$Connection_1 -> Query (
"Connection_1",
"

"
);

$DB1 -> Close ("Connection_1");
*/

// ****************************************
//          Static Public Variables
// **************************************** 
    static public $MySQL_Connection_ = array();
    //DB::$MySQL_Connection_[$MySQL_Connection] =

    static public $MySQL_Connection_Success_Message = "Connected Successfully or Still Connected";
    //DB::$MySQL_Connection_Success_Message = 

    static public $MySQL_Connection_Failure_Message = "Connection Failed";
    //DB::$MySQL_Connection_Failure_Message = 

    static public $MySQL_Connection_Status_Short = 0;
    //DB::$MySQL_Connection_Status_Short = 

    static public $MySQL_Connection_Status_Long = "!!! MySQL: NOT CONNECTED !!!";
    //DB::$MySQL_Connection_Status_Long =

    static public $MySQL_Commands = "null";
    //DB::$MySQL_Commands = 

    static public $MySQL_Query_Success_Message = "MySQL Query Success";
    //DB::$MySQL_Query_Success_Message = 

    static public $MySQL_Query_Failure_Message = "MySQL Query Failure";
    //DB::$MySQL_Query_Failure_Message = 

    static public $MySQL_Query_Status_Short = 0;
    //DB::$MySQL_Query_Status_Short = 

    static public $MySQL_Query_Status_Long = "!!! CANT QUERY: QUERY EMPTY or NOT CONNECTED !!!";
    //DB::$MySQL_Query_Status_Long = 

// ****************************************
// Function to end connection to a database
// ****************************************
    function Close (
        $MySQL_Connection
    )
    {
        DB::$MySQL_Connection_[$MySQL_Connection] = null;

        // Set
        DB::$MySQL_Connection_Status_Short = 0;
        DB::$MySQL_Connection_Status_Long = "Was Connected: NOW DISCONNECTED !!!";
    } // END Function (MySQL_Close)

// *****************************************************
// Function to set the $MySQL_Connection_Success_Message
// *****************************************************
function Set_Connection_Pass_Info ($Input_Variable){

    switch ($Input_Variable) {
        case "default":
            DB::$MySQL_Connection_Success_Message = "Connected Successfully";
            break;
        default:
            DB::$MySQL_Connection_Success_Message = $Input_Variable;
    }

} // END function Set_MySQL_Connection_Success_Message

// *****************************************************
// Function to set the $MySQL_Connection_Failure_Message
// *****************************************************
function Set_Connection_Fail_Info ($Input_Variable){

    switch ($Input_Variable) {
        case "default":
            DB::$MySQL_Connection_Failure_Message = "Connection Failed";
            break;
        default:
            DB::$MySQL_Connection_Failure_Message = $Input_Variable;
    }

} // END function $MySQL_Connection_Failure_Message

// ************************************
// Function to Print MySQL Status Short
// ************************************
    function Connection_Report_Short ()
    {
        echo DB::$MySQL_Connection_Status_Short . "<br> <br>";
    } // END Function (MySQL_Connection_Status_Report_Short)

// ***********************************
// Function to Print MySQL Status Long
// ***********************************
    function Connection_Report_Long ()
    {
        echo DB::$MySQL_Connection_Status_Long . "<br> <br>";
    } // END Function (MySQL_Connection_Status_Report_Long)

// ****************************************
// Function to create a general MySQL Query
// ****************************************
    function Query (
        $MySQL_Connection,
        // MySQL Query
        $MySQL_Query
    )
    {
        // Create MySQL Query
        // DB::$MySQL_Commands = $MySQL_Query;

        // Create MySQL Query
        try {
            // Prepare statement
            DB::$MySQL_Commands = DB::$MySQL_Connection_[$MySQL_Connection]->prepare($MySQL_Query);

            // execute the query
            DB::$MySQL_Commands->execute();

            // Set 
            DB::$MySQL_Query_Status_Short = 1;
            DB::$MySQL_Query_Status_Long = DB::$MySQL_Query_Success_Message;


            // echo a message to say the UPDATE succeeded
            // echo DB::$MySQL_Commands->rowCount() . " records UPDATED successfully";
            }

        // MySQL Query Error Handling
        catch (PDOException $PDOException_Error)
            {
            // Set
            DB::$MySQL_Query_Status_Short = 0;
            DB::$MySQL_Query_Status_Long = DB::$MySQL_Query_Failure_Message . ": " . $MySQL_Query . "<br>" . $PDOException_Error->getMessage();
            }

    } // END Function (MySQL_Query)

// *************************************************
// Function to set the $MySQL_Query_Success_Message;
// *************************************************
function Set_Query_Pass_Info ($Input_Variable){

    switch ($Input_Variable) {
        case "default":
            DB::$MySQL_Query_Success_Message = "MySQL Query Success";
            break;
        default:
            DB::$MySQL_Query_Success_Message = $Input_Variable;
    }

} // END function Set_MySQL_Connection_Success_Message

// *************************************************
// Function to set the $MySQL_Query_Failure_Message;
// *************************************************
function Set_Query_Fail_Info ($Input_Variable){

    switch ($Input_Variable) {
        case "default":
            DB::$MySQL_Query_Failure_Message = "MySQL Query Failure";
            break;
        default:
            DB::$MySQL_Query_Failure_Message = $Input_Variable;
    }

} // END function $MySQL_Connection_Failure_Message

// ******************************************
// Function to Print MySQL Query Status Short
// ******************************************
    function Query_Report_Short ()
    {
        echo DB::$MySQL_Query_Status_Short . "<br> <br>";
    } // END Function (MySQL_Query_Status_Report_Long)

// *****************************************
// Function to Print MySQL Query Status Long
// *****************************************
    function Query_Report_Long ()
    {
        echo DB::$MySQL_Query_Status_Long . "<br> <br>";
    } // END Function (MySQL_Query_Status_Report_Long)

// Main function //

// ****************************
// Function to connect to MySQL
// ****************************
    function Connect(
        $MySQL_Connection,
        $Database_Server_Name,
        $Database_Server_Username,
        $Database_Server_Username_Password,
        $Database_Name // Set to "null" if not connecting to a database
    )
    {
        // Create Connection
        try {
            // Add database portion of cononect statement if connecting to a database
            if($Database_Name = "null"){
                $Database_Connection_Addon = "";
            } else {
                $Database_Connection_Addon = ";dbname=$Database_Name";
            }

            // Create Connection
            DB::$MySQL_Connection_[$MySQL_Connection] = new PDO("mysql:host=$Database_Server_Name" . "$Database_Connection_Addon", $Database_Server_Username, $Database_Server_Username_Password);

            // Connection Attributes
            DB::$MySQL_Connection_[$MySQL_Connection]->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            // Set
            DB::$MySQL_Connection_Status_Short = 1;
            DB::$MySQL_Connection_Status_Long =  DB::$MySQL_Connection_Success_Message;

            }

        // Connection Error Handling
        catch (PDOException $PDOException_Error)
            {
            // Set
            DB::$MySQL_Connection_Status_Short = 0;
            DB::$MySQL_Connection_Status_Long = DB::$MySQL_Connection_Failure_Message . ": " . $PDOException_Error->getMessage();
            }

    } // END Function (MySQL_Connect)   

} // END CLASS (DB)
classdb{
/*
//布局
//$DB1->Set_Connection_Pass_Info(“默认”);
//$DB1->设置连接失败信息(“默认”);
//$DB1->Connection_Report_Short();
//$DB1->Connection_Report_Long();
//$DB1->Set_Query_Pass_Info(“默认”);
//$DB1->设置查询失败信息(“默认”);
//$DB1->Query_Report_Short();
//$DB1->Query_Report_Long();
包括“class.php”;
$DB1=新数据库;
//连接名称-服务器名称-用户名-用户密码-数据库名称:如果没有数据库,则为“null”
$DB1->Connect(“Connection_1”、“localhost”、“root”、“UserMain1324!”、“Database_Test_1”);
$Connection\u 1->Query(
“连接1”,
"
"
);
$DB1->关闭(“连接1”);
*/
// ****************************************
//静态公共变量
// **************************************** 
静态公共$MySQL\u连接\uu=array();
//DB::$MySQL\u连接\[$MySQL\u连接]=
静态公共$MySQL\u Connection\u Success\u Message=“已成功连接或仍在连接”;
//DB::$MySQL\u连接\u成功\u消息=
静态公共$MySQL\u连接\u失败\u消息=“连接失败”;
//DB::$MySQL\u连接\u失败\u消息=
静态公共$MySQL\u连接\u状态\u短=0;
//DB::$MySQL\u连接\u状态\u短=
静态公共$MySQL\u Connection\u Status\u Long=“!!!MySQL:未连接!!!”;
//DB::$MySQL\u连接\u状态\u长=
静态公共$MySQL\u命令=“null”;
//DB::$MySQL_命令=
静态公共$MySQL\u Query\u Success\u Message=“MySQL Query Success”;
//DB::$MySQL\u查询\u成功\u消息=
静态公共$MySQL\u Query\u Failure\u Message=“MySQL Query Failure”;
//DB::$MySQL\u查询\u失败\u消息=
静态public$MySQL\u Query\u Status\u Short=0;
//DB::$MySQL\u查询\u状态\u短=
静态公共$MySQL\u Query\u Status\u Long=“!!!无法查询:查询为空或未连接!!!”;
//DB::$MySQL\u查询\u状态\u长=
// ****************************************
//函数结束与数据库的连接
// ****************************************
功能关闭(
$MySQL\u连接
)
{
DB::$MySQL\u Connection\u[$MySQL\u Connection]=null;
//设置
DB::$MySQL\u Connection\u Status\u Short=0;
DB::$MySQL\u Connection\u Status\u Long=“已连接:现在已断开!!!”;
}//结束函数(MySQL\u Close)
// *****************************************************
//函数设置$MySQL\u Connection\u Success\u消息
// *****************************************************
函数集\连接\传递\信息($Input\变量){
开关($Input_变量){
案例“默认”:
DB::$MySQL\u Connection\u Success\u Message=“Connected Successfully”;
打破
违约:
DB::$MySQL\连接\成功\消息=$Input\变量;
}
}//结束函数集\u MySQL\u连接\u成功\u消息
// *****************************************************
//函数设置$MySQL\u连接\u失败\u消息
// *****************************************************
函数集\连接\失败\信息($Input\变量){
开关($Input_变量){
案例“默认”:
DB::$MySQL\u Connection\u Failure\u Message=“Connection Failed”;
打破
违约:
DB::$MySQL\连接\失败\消息=$Input\变量;
}
}//结束函数$MySQL\u连接\u失败\u消息
// ************************************
//用于打印MySQL状态的函数
// ************************************
功能连接\u报告\u短()
{
echo数据库::$MySQL\u连接\u状态\u短。“

”; }//结束函数(MySQL\u连接\u状态\u报告\u短) // *********************************** //函数以长时间打印MySQL状态 // *********************************** 函数连接报告长() { echo DB::$MySQL\u连接\u状态\u长。“

”; }//结束函数(MySQL\u连接\u状态\u报告\u长) // **************************************** //函数创建一个通用的MySQL查询 // **************************************** 函数查询( $MySQL\u连接, //MySQL查询 $MySQL\u查询 ) { //创建MySQL查询 //DB::$MySQL\u命令=$MySQL\u查询; //创建MySQL查询 试一试{ //准备报表 DB:$MySQL\u Commands=DB:$MySQL\u Connection\u[$MySQL\u Connection]->prepare($MySQL\u Query); //执行查询 DB::$MySQL_命令->执行(); //设置 DB::$MySQL\u Query\u Status\u Short=1; DB:$MySQL\u Query\u Status\u Long=DB:$MySQL\u Query\u Success\u消息; //回显一条消息,表示更新成功 //echo DB::$MySQL_命令->行计数()“记录更新成功”; } //MySQL查询错误处理 捕获(PDOException$PDOException_错误) { //设置 DB::$MySQL\u Query\u Status\u Short=0; DB:$MySQL\u Query\u Status\u Long=DB:$MySQL\u Query\u Failure\u Message.:“:”$MySQL\u Query
class DB {

/*

// Layout

// $DB1 -> Set_Connection_Pass_Info ("default");
// $DB1 -> Set_Connection_Fail_Info ("default");
// $DB1 -> Connection_Report_Short ();
// $DB1 -> Connection_Report_Long ();
// $DB1 -> Set_Query_Pass_Info ("default");
// $DB1 -> Set_Query_Fail_Info ("default");
// $DB1 -> Query_Report_Short ();
// $DB1 -> Query_Report_Long ();

include "class.php";

$DB1 = new DB;

//  Connection Name - Server Name - User Name - User Password - Database Name: "null" if no Database
$DB1 -> Connect("Connection_1","localhost","root","UserMain1324!","Database_Test_1");

$Connection_1 -> Query (
"Connection_1",
"

"
);

$DB1 -> Close ("Connection_1");
*/

// ****************************************
//          Static Public Variables
// **************************************** 
    static public $MySQL_Connection_ = array();
    //DB::$MySQL_Connection_[$MySQL_Connection] =

    static public $MySQL_Connection_Success_Message = "Connected Successfully or Still Connected";
    //DB::$MySQL_Connection_Success_Message = 

    static public $MySQL_Connection_Failure_Message = "Connection Failed";
    //DB::$MySQL_Connection_Failure_Message = 

    static public $MySQL_Connection_Status_Short = 0;
    //DB::$MySQL_Connection_Status_Short = 

    static public $MySQL_Connection_Status_Long = "!!! MySQL: NOT CONNECTED !!!";
    //DB::$MySQL_Connection_Status_Long =

    static public $MySQL_Commands = "null";
    //DB::$MySQL_Commands = 

    static public $MySQL_Query_Success_Message = "MySQL Query Success";
    //DB::$MySQL_Query_Success_Message = 

    static public $MySQL_Query_Failure_Message = "MySQL Query Failure";
    //DB::$MySQL_Query_Failure_Message = 

    static public $MySQL_Query_Status_Short = 0;
    //DB::$MySQL_Query_Status_Short = 

    static public $MySQL_Query_Status_Long = "!!! CANT QUERY: QUERY EMPTY or NOT CONNECTED !!!";
    //DB::$MySQL_Query_Status_Long = 

// ****************************************
// Function to end connection to a database
// ****************************************
    function Close (
        $MySQL_Connection
    )
    {
        DB::$MySQL_Connection_[$MySQL_Connection] = null;

        // Set
        DB::$MySQL_Connection_Status_Short = 0;
        DB::$MySQL_Connection_Status_Long = "Was Connected: NOW DISCONNECTED !!!";
    } // END Function (MySQL_Close)

// *****************************************************
// Function to set the $MySQL_Connection_Success_Message
// *****************************************************
function Set_Connection_Pass_Info ($Input_Variable){

    switch ($Input_Variable) {
        case "default":
            DB::$MySQL_Connection_Success_Message = "Connected Successfully";
            break;
        default:
            DB::$MySQL_Connection_Success_Message = $Input_Variable;
    }

} // END function Set_MySQL_Connection_Success_Message

// *****************************************************
// Function to set the $MySQL_Connection_Failure_Message
// *****************************************************
function Set_Connection_Fail_Info ($Input_Variable){

    switch ($Input_Variable) {
        case "default":
            DB::$MySQL_Connection_Failure_Message = "Connection Failed";
            break;
        default:
            DB::$MySQL_Connection_Failure_Message = $Input_Variable;
    }

} // END function $MySQL_Connection_Failure_Message

// ************************************
// Function to Print MySQL Status Short
// ************************************
    function Connection_Report_Short ()
    {
        echo DB::$MySQL_Connection_Status_Short . "<br> <br>";
    } // END Function (MySQL_Connection_Status_Report_Short)

// ***********************************
// Function to Print MySQL Status Long
// ***********************************
    function Connection_Report_Long ()
    {
        echo DB::$MySQL_Connection_Status_Long . "<br> <br>";
    } // END Function (MySQL_Connection_Status_Report_Long)

// ****************************************
// Function to create a general MySQL Query
// ****************************************
    function Query (
        $MySQL_Connection,
        // MySQL Query
        $MySQL_Query
    )
    {
        // Create MySQL Query
        // DB::$MySQL_Commands = $MySQL_Query;

        // Create MySQL Query
        try {
            // Prepare statement
            DB::$MySQL_Commands = DB::$MySQL_Connection_[$MySQL_Connection]->prepare($MySQL_Query);

            // execute the query
            DB::$MySQL_Commands->execute();

            // Set 
            DB::$MySQL_Query_Status_Short = 1;
            DB::$MySQL_Query_Status_Long = DB::$MySQL_Query_Success_Message;


            // echo a message to say the UPDATE succeeded
            // echo DB::$MySQL_Commands->rowCount() . " records UPDATED successfully";
            }

        // MySQL Query Error Handling
        catch (PDOException $PDOException_Error)
            {
            // Set
            DB::$MySQL_Query_Status_Short = 0;
            DB::$MySQL_Query_Status_Long = DB::$MySQL_Query_Failure_Message . ": " . $MySQL_Query . "<br>" . $PDOException_Error->getMessage();
            }

    } // END Function (MySQL_Query)

// *************************************************
// Function to set the $MySQL_Query_Success_Message;
// *************************************************
function Set_Query_Pass_Info ($Input_Variable){

    switch ($Input_Variable) {
        case "default":
            DB::$MySQL_Query_Success_Message = "MySQL Query Success";
            break;
        default:
            DB::$MySQL_Query_Success_Message = $Input_Variable;
    }

} // END function Set_MySQL_Connection_Success_Message

// *************************************************
// Function to set the $MySQL_Query_Failure_Message;
// *************************************************
function Set_Query_Fail_Info ($Input_Variable){

    switch ($Input_Variable) {
        case "default":
            DB::$MySQL_Query_Failure_Message = "MySQL Query Failure";
            break;
        default:
            DB::$MySQL_Query_Failure_Message = $Input_Variable;
    }

} // END function $MySQL_Connection_Failure_Message

// ******************************************
// Function to Print MySQL Query Status Short
// ******************************************
    function Query_Report_Short ()
    {
        echo DB::$MySQL_Query_Status_Short . "<br> <br>";
    } // END Function (MySQL_Query_Status_Report_Long)

// *****************************************
// Function to Print MySQL Query Status Long
// *****************************************
    function Query_Report_Long ()
    {
        echo DB::$MySQL_Query_Status_Long . "<br> <br>";
    } // END Function (MySQL_Query_Status_Report_Long)

// Main function //

// ****************************
// Function to connect to MySQL
// ****************************
    function Connect(
        $MySQL_Connection,
        $Database_Server_Name,
        $Database_Server_Username,
        $Database_Server_Username_Password,
        $Database_Name // Set to "null" if not connecting to a database
    )
    {
        // Create Connection
        try {
            // Add database portion of cononect statement if connecting to a database
            if($Database_Name = "null"){
                $Database_Connection_Addon = "";
            } else {
                $Database_Connection_Addon = ";dbname=$Database_Name";
            }

            // Create Connection
            DB::$MySQL_Connection_[$MySQL_Connection] = new PDO("mysql:host=$Database_Server_Name" . "$Database_Connection_Addon", $Database_Server_Username, $Database_Server_Username_Password);

            // Connection Attributes
            DB::$MySQL_Connection_[$MySQL_Connection]->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

            // Set
            DB::$MySQL_Connection_Status_Short = 1;
            DB::$MySQL_Connection_Status_Long =  DB::$MySQL_Connection_Success_Message;

            }

        // Connection Error Handling
        catch (PDOException $PDOException_Error)
            {
            // Set
            DB::$MySQL_Connection_Status_Short = 0;
            DB::$MySQL_Connection_Status_Long = DB::$MySQL_Connection_Failure_Message . ": " . $PDOException_Error->getMessage();
            }

    } // END Function (MySQL_Connect)   

} // END CLASS (DB)