Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    98

    Strano comportamento attributi

    Salve a tutti,
    ho realizzato una classe (Database.php) per l'interazione con la base di dati.
    Il sorgente è questo:
    codice:
    <?php
    	class Database
    	{
    		//Attributi
    		private $name = "";
    		private $address = "";
    		private $username = "";
    		private $password = "";
    		private $con;
    
    
    		//Metodi
    		public function __constuct($address, $name, $username, $password)
    		{
    			$this->address = $address;
    			$this->name = $name;
    			$this->username = $username;
    			$this->password = $password;
    			$this->con = new Mysqli($address, $username, $password, $name);
    		}
    
                   public function connect()
    		{
    			var_dump($this->con);
    			
    			if( $this->con->connect_errno ) 
    			{
    			    echo "con fallita: ". $con->connect_error . ".";
    			    return false;
    			}
    
    
    		        else return true;
    		}
    ?>
    Per testarne il funzionamento ho utilizzato il seguente codice:
    codice:
    <?php
    	include("Database.php");
    
    
    	$db = new Database("localhost", "dbname", "user", "pw");
    
    
    	if( $db->connect() )
    		echo "La connessione è avvenuta con successo";
    ?>
    Com'è possibile che nonostante il costruttore inizializzi l'attributo $con, nel momento in cui eseguo il var_dump dall'altro metodo (connect), questo mi restituisce NULL come se il costruttore non avesse inizializzato?
    Questo problema lo risconto anche con tutti gli altri attributi inizializzati nel costruttore.

    Qualcuno saprebbe illuminarmi?

    PS: Per richiamare un metodo definito nella classe, all'interno di un altro metodo della medesima classe, qual è la sintassi da seguire?

    - Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    98
    Chiudete per favore.
    La causa di tutti i mali era il nome del costruttore a cui mancava una dannata 'r'.

    Scusate

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    783
    Manca anche la } per chiudere la classe.

    In ogni caso ti consiglio di usare un editor che fa l'higlight del testo, così è più semplice evitare questi errori, che essendo errori di distrazione possono succedere anche ai più esperti.
    Ultima modifica di M4V1; 15-09-2017 a 10:40

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.