如何在php中定义类的属性?

Dan*_*yle 5 php database class function

根据我读到的内容,我收到了混合回复,

我已经定义了一个包含2个函数的类.

我希望这两个函数都能访问数据库凭据

目前,除非我将变量复制并粘贴到每个函数中,否则此代码不起作用.

我在这做错了什么?

<?php
class database  {
function connect()  {
var $username="my_username";
var $servername="localhost";
var $database="my_DB";
var $password="An_Awesome_Password";
var $con;
    $con = mysql_connect($servername,$username,$password);

    if (!$con)  {
    die('Could not connect: ' . mysql_error());
                }
                    }

function disconnect()   {
    $con = mysql_connect($servername,$username,$password);

    if (!$con)  {
    die('Could not connect: ' . mysql_error());
                }
    mysql_close($con);
                        }
            }
?>
Run Code Online (Sandbox Code Playgroud)

Ja͢*_*͢ck 11

这个块:

var $username="my_username";
var $servername="localhost";
var $database="my_DB";
var $password="An_Awesome_Password";
var $con;
Run Code Online (Sandbox Code Playgroud)

应该来到之前function(),而不是在里面; 但仍在class定义范围内.

添加明确的可见性是一种很好的形式; 私人开始:

class database  {
    private $username="my_username";
    private $servername="localhost";
    // etc. etc.
Run Code Online (Sandbox Code Playgroud)

然后,函数将它们称为:

$this->username;
$this->con;
etc.
Run Code Online (Sandbox Code Playgroud)

理想情况下,您希望将这些凭据传递给构造函数:

private $servername;
private $database;
private $username;
private $password;
private $con;

function __construct($host, $user, $password, $dbname)
{
    $this->servername = $host;
    $this->username = $user;
    $this->password = $password;
    $this->database = $dbname;
}
Run Code Online (Sandbox Code Playgroud)

更理想的是,了解PDO