Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Array in una classe

  1. #1

    Array in una classe

    Salve a tutti.
    Ho cominciato da poco a lavorare con le classi, e per esercizio stavo cercando di crearne una che simulasse un database usando file di testo.
    Per far si che possa lavorare su più file di testo (più "database") ho inserito un array che contiene i percorsi dei file di testo ($DBS); il file da usare viene chiamato con la classe. Invece non legge l'array in nessun modo, dov'è l'errore?

    Questa è la bozza della classe:

    Codice PHP:
    class fileHandler {
      
      private 
    $DBS=array(
        
    'file1'=>'percorso/file1.txt',
        
    'file2'=>'persorso/file2.txt',
        );
      private 
    $fp;
      
      public function 
    __construct($k) {
        if(isset(
    $DBS[$k])) {$FILE_PATH=$DBS[$k]} else {die('Database inesistente');}
        if(!
    file_exists($FILE_PATH)) {
          
    $fp=fopen($FILE_PATH,'w+');
          
    fclose($fp);
          }
        
    $this->fp=fopen($FILE_PATH,'r+');
        }   
      
      public function 
    __destruct() {
        if(
    $this->fpfclose($this->fp);
        }

    // metodi della classe

      

    e così la chiamo

    Codice PHP:
    $file=new fileHandler('file1'); 
    firma in costruzione

  2. #2
    Nel codice c'era qualche errore,tipo quello di chiamare l'array dichiarato $DBS.non usando $this.
    va scrittto $this->DBS[$k] e non $DBS[$k].

    ecco il codice corretto:
    <?php
    class fileHandler {

    private $DBS=array(
    'file1'=>'file1.txt',
    'file2'=>'file2.txt',
    );
    private $fp;

    public function __construct($k) {
    if(isset($this->DBS[$k]))
    {
    $FILE_PATH=$this->DBS[$k];
    }
    else {die('Database inesistente');}
    if(!file_exists($FILE_PATH)) {
    $fp=fopen($FILE_PATH,'w+');
    fclose($fp);
    }
    $this->fp=fopen($FILE_PATH,'r+');
    }

    public function __destruct() {
    if($this->fp) fclose($this->fp);
    }

    // metodi della classe

    }
    $file=new fileHandler('file1');

    ?>

  3. #3
    Oddio è vero! Sono un pirla

    Grazie mille!!!
    firma in costruzione

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 © 2025 vBulletin Solutions, Inc. All rights reserved.