mardi 2 août 2016

Difference Between Class with constructor and Class without when calling a function?

What's the difference between a class with constructor and class without when calling a function in this code? below is my example code

Class w/ Constructor:

    class DatabaseConnection
{
    public $database_host = "";
    public $database_name = "";
    public $database_username = "";
    public $database_password = "";

    public function __construct( $database_host, $database_name, $database_username, $database_password )
    {
        $this->$database_host = $database_host;
        $this->$database_name  = $database_name;
        $this->$database_username = $database_username;
        $this->$database_password  = $database_password;
    }

    public function connect_database()
    {
        $database_connection = null;

        try {
            $database_connection = new PDO( "mysql:host={$database_host};
                                            dbname={$database_name}",
                                            $database_username,
                                            $database_password );

            $database_connection->setAttribute( PDO::ATTR_ERRMODE,
                                                PDO::ERRMODE_EXCEPTION );
        } catch ( PDOException $pdo_exception ) {
            trigger_error( $pdo_exception,
                           E_USER_ERROR );
        }

        return $database_connection;
    }
}

Class without constructor:

    class DatabaseConnection
{
    public function connect_database( $database_host, $database_name, $database_username, $database_password )
    {
        $database_connection = null;

        try {
            $database_connection = new PDO( "mysql:host={$database_host};
                                            dbname={$database_name}",
                                            $database_username,
                                            $database_password );

            $database_connection->setAttribute( PDO::ATTR_ERRMODE,
                                                PDO::ERRMODE_EXCEPTION );
        } catch ( PDOException $pdo_exception ) {
            trigger_error( $pdo_exception,
                           E_USER_ERROR );
        }

        return $database_connection;
    }
}

Call a function in a class that has constructor:

$db = new DatabaseConnection( "localhost", "dbname", "username", "password" )

$db->connect_database();

Call a fucntion in a class that has no constructor:

$db = new DatabaseConnection();

$db->connect_database( "localhost", "dbname", "username", "password" );




Aucun commentaire:

Enregistrer un commentaire