Visualizzazione dei risultati da 1 a 8 su 8

Discussione: PHP Deprecated:

  1. #1

    PHP Deprecated:

    ciao non sono molto pratico di php, lo script funziona ma sul server mi continua a dare questi errori penso perche il php con cui č fatto lo script č di 5/6 anni fa mentre ora č installato il 7o 8
    come posso sistemare questi 2 errori?

    PHP Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP;


    class Dir

    e anche questo

    class File

    posso sostituirli o mettere qualche simbolo per aggiornarli?
    grazie a tutti

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Rinomina i costruttori della classe che hai al momento, sono le funzioni con lo stesso nome della classe, rimpiazzali con
    function __construct()
    Nelle parentesi rimettici ciņ che eventualmente hai ora.

    E' spiegato qui: https://www.php.net/manual/en/migrat...deprecated.php
    all'inizio.

  3. #3
    ciao e grazie ma...

    ho messo come hai detto tu

    function __construct(class Dir)
    function __construct(class File)

    ma mi da errore 500 nella pagina e nel debug mi da cosi

    PHP Parse error: syntax error, unexpected 'class' (T_CLASS), expecting variable (T_VARIABLE)

  4. #4
    Invece di:

    Codice PHP:
    class Dir {
       function 
    Dir($param1$param2) {

      }

    Devi scrivere:

    Codice PHP:
    class Dir {
       public function 
    __construct($param1$param2) {

      }

    Dove $param1, $param2 sono eventuali parametri che ora passi al tuo costruttore.

  5. #5
    ci ho provato ma nel debug mi da lo stesso errore. il mio codice č questo...

    class Dir
    {
    var $name;
    var $location;


    //
    // Constructor
    //
    function Dir($name, $location)
    {
    $this->name = $name;
    $this->location = $location;
    }


    function getName()
    {
    return $this->name;
    }


    function getNameHtml()
    {
    return htmlspecialchars($this->name);
    }


    function getNameEncoded()
    {
    return rawurlencode($this->name);
    }


    //
    // Debugging output
    //
    function debug()
    {
    print("Dir name (htmlspecialchars): ".$this->getName()."\n");
    print("Dir location: ".$this->location->getDir(true, false, false, 0)."\n");
    }
    }


    come devo modificarlo? ho fatto come hai detto tu ma solo con la prima ovvero
    public function __construct($name, $location)

    ma da ancora errore DEPRECATED

  6. #6
    Codice PHP:
    class Dir
    {
        var 
    $name;
        var 
    $location;
     
     
        
    //
        // Constructor
        //
        
    function __construct($name$location)
        {
            
    $this->name $name;
            
    $this->location $location;
        }
     
     
        function 
    getName()
        {
            return 
    $this->name;
        }
     
     
        function 
    getNameHtml()
        {
            return 
    htmlspecialchars($this->name);
        }
     
     
        function 
    getNameEncoded()
        {
            return 
    rawurlencode($this->name);
        }
     
     
        
    //
        // Debugging output
        //
        
    function debug()
        {
            print(
    "Dir name (htmlspecialchars): " $this->getName() . "\n");
            print(
    "Dir location: " $this->location->getDir(truefalsefalse0) . "\n");
        }


  7. #7
    č come avevo fatto io in pratica.
    ora provo anche con l altro che mi da errore che č class File
    poi so dire.

    grazie mille intanto

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,445
    Quote Originariamente inviata da enrico.marconi Visualizza il messaggio
    č come avevo fatto io in pratica.
    Non proprio, tu continui a scrivere
    Codice PHP:
    function Dir($name$location
    questa riga va sostituita con la seguente

    Codice PHP:
    public function __construct($name$location
    e mi raccomando ci sono due underscore, non uno.

    Se anche cosģ facendo continui ad avere il messaggio, evidentemente proviene dall'altra classe se non l'hai modificata.
    Ultima modifica di Alhazred; 03-12-2021 a 12:11

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.