How to define properties for a class in php?

I got mixed answers to this, depending on what I was browsing,

I defined a class with 2 functions.

I want both functions to have access to the database credentials

Currently this code does not work unless I copy and paste the variables into each function.

What am I doing wrong here?

<?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);
                        }
            }
?>
+5
source share
6 answers

This block:

var $username="my_username";
var $servername="localhost";
var $database="my_DB";
var $password="An_Awesome_Password";
var $con;

It falls before function(), not inside; but still inside the definition class.

And this is a good form for adding explicit visibility; to start:

class database  {
    private $username="my_username";
    private $servername="localhost";
    // etc. etc.

Then the functions refer to them as:

$this->username;
$this->con;
etc.

Ideally, you want these credentials to be passed in by the constructor:

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;
}

Better yet, learn about PDO

+10

, $this- > property_name

 $this->con = mysql_connect($this->servername,$this->username,$this->password);

:

<?php
class database  {
    var $username="my_username";
    var $servername="localhost";
    var $database="my_DB";
    var $password="An_Awesome_Password";
    var $con;

    function connect()  {

        $this->con = mysql_connect($this->servername,$this->username,$this->password);

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

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

        if (!$this->con)  {
            die('Could not connect: ' . mysql_error());
        }
        mysql_close($this->con);
    }
}
?>
+3

, , . - :

class database {
    var $username = "my_username";
    // etc.

    function connect() {
        // connect code
        // $this->username == "my_username"
    }
}
+3

construct destruct, ,

class database  {
    private $username = 'username';
    private $servername = "localhost";
    private $database = "my_DB";
    private $password = "An_Awesome_Password";
    private $conId;

   public function __construct(){
        $con = mysql_connect($this->servername, $this->username, $this->password);
        $this->conId = $con;
        //..........
    }


    public function __destruct(){
        mysql_close($this->conId);
    }
}
+2

, "", "" "private", "var". , , ( a.k.a.). :

class database  {
    private $username="my_username";
    private $servername="localhost";
    private $database="my_DB";
    private $password="An_Awesome_Password";
    private $con;

    public function connect()  {
        if (!$this->con) {
            $this->con = mysql_connect(
                    $this->servername, $this->username, $this->password);

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

    public function disconnect()   {
        if ($this->con)  {
            mysql_close($this->con);
        }
    }
}
+1

, .

, , , .

Global Public Private Function

0
source

All Articles