Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Errore programmazione ad oggetti

    Ragazzi sto seguendo questo tutorial, per iniziare ad imparare come si programma ad oggetti in php. Il discorso e' che al primo script ricevo subito un errore!
    L'errore che mi restituisce e' questo:
    codice:
    Fatal error:  Call to undefined method Php5File::getContent() in /Applications/MAMP/htdocs/ProvePHP/OOP/primo.php on line 34
    Ma sinceramente nn riesco proprio a capire come mai..
    La classe e' la stessa, copiata pari pari, di quella del tutorial, ovvero:
    Codice PHP:
    <?php
    class Php5File
    {
        protected 
    $resource;
        protected 
    $fname;
    }

    //Costruttore, apre lo stream e inizializza l'oggetto
    function __construct($nome)
    {
        
    $this->fname $nome;
        
    $this->resource fopen($nome'r');
    }

    //Legge il contenuto del file 
    function getContent()
    {
        return 
    fread($this->resourcefilesize($this->fname));
    }
    //Chiudo lo stream quando l'oggetto non e' piu' necessario e ogni riferimento e' eliminato
    function __destruct()
    {
        if(isset(
    $this->resource))
        {
            
    fclose($this->resource);
        }
    }
    //Fine classe.
    $file = new Php5File('esempio.txt');
    echo(
    '<pre>');
    echo(
    $file->getContent());
    echo(
    '</pre>');
    ?>
    Sinceramente nn riesco a capire perche' mi restituisce questo errore...
    Ho seguito alla lettera il tutorial, ma il mio php mi dice che nn conosce il metodo getContent() che e' dichiarato qualche riga sopra!!!
    Qualcuno saprebbe mica farmi chiarezza??

    Grazie in anticipo per le risposte!!!

  2. #2
    Codice PHP:
    class Php5File
    {
        protected 
    $resource;
        protected 
    $fname;

    Chiudendo la } dopo l'attributo $fname nella tua classe esistono solo $resource e $fname, le tue funzioni sono scritte fuori dalla classe e quindi non sono metodi dell'oggetto. Una classe deve contenere (entre { e }) tutti gli attributi e metodi che vuoi che la compongono.

    Metti la } dopo __destruct() e vedrai che funzionerà.

  3. #3
    Cacchio e' proprio vero!!!
    Devo imparare ad essere meno distratto
    Grazie mille!!!

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.