2009-06-24 10 views
0

J'appelle une classe qui ne semble exécuter aucune de ses méthodes. Considérez le fichier suivant (db-com.php):Contrôle ne pas entrer dans le fichier de classe PHP

echo "entered db-com.php"; 
class DBCom { 
    /** 
    * @var string Holds the query string. 
    * If the blank constructor is used, make sure to use the parametrized functions. 
    */ 
    var $queryString; 

    /** 
    * @var resource Holds the MySQL Resource returned by mysql_query function 
    */ 
    var $queryResult; 

    /** 
    * @var array Holds the entire array of the result. 
    */ 
    var $queryArray; 

    function __construct() { 
     $this->queryString = $this->queryResult = $this->queryArray = ''; 
    } 
    function __construct($qS) { 
     $this->queryString = $qS; 
     $this->queryResult = mysql_query($this->queryString); 
     $this->queryArray = ''; 
    } 

    /** 
    * 
    * @return array An array containing all the elements of the requested query. 
    */ 
    function get_query_array() { 
     if($this->queryString == '' || $this->queryString == "") { 
      die("Query String is Empty. Cannot Proceed."); 
     } 
     for ($i = 0 ; $fetchedArray = mysql_fetch_array($this->queryResult) ; $i++) { 
      $this->queryArray[$i] = $fetchedArray; 
     } 
     return $this->queryArray; 
    } 
} 

Lorsque dans un autre fichier que j'écris:

require ('some_path/db-com.php'); 

ne même pas entrer dans ce fichier. c'est-à-dire que même la première instruction echo ne s'affiche pas.

Cela ne se produit pas avec d'autres fichiers de classe. Seulement ce type de classe impliquant des fonctions SQL. Donc j'ai même commencé un fichier vide, testé d'abord que le contrôle y entre ou non (il l'a fait) puis a écrit tout cela, l'a enregistré sous un nom différent, et l'a inclus, et cette erreur mystérieuse est ressortie.

Où est-ce que je me suis trompé?

+0

ce qui est l'erreur? –

+1

Vous n'avez pas besoin de créer ce wiki de communauté. – Kev

+0

@zack thats le problème, rien ne vient, le contrôle ne pas entrer dans le fichier :) @kev je fais juste chacun d'entre eux un wiki sauf si nécessaire. aide parfois. :) – OrangeRind

Répondre

3

Vous avez deux méthodes __construct(). Vous ne pouvez pas surcharger des méthodes comme ça en PHP.

Vous avez probablement display_error est désactivé, c'est pourquoi vous ne pouvez pas voir le message d'erreur:

Fatal error: Cannot redeclare DBCom::__construct() in C:\test.php on line 23

+0

lol merci! en supprimant le constructeur supplémentaire travaillé! alors est-ce que j'utilise aussi des paramètres par défaut pour réaliser une pseudo-surcharge? – OrangeRind

+0

vous pourriez le faire, ou vous pourriez prendre un tableau associatif en tant que paramètre et ensuite travailler sur ce qu'il faut faire en fonction des clés qu'il contient. –

+0

merci encore! – OrangeRind

0

Contrôle d'intégrité: Avez-vous un autre fichier sur le chemin qui est vide ou obsolète?

+0

pas du tout complètement sûr que l'homme! – OrangeRind

1

Êtes-vous faire <?php ?>

+0

oui j'ai exclu parce que cela causait des problèmes d'affichage dans cette question page – OrangeRind

Questions connexes