$this werkt niet in method?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

- Ariën  -
Beheerder

- Ariën -

06/11/2018 13:15:23
Quote Anchor link
Kan iemand mij uitleggen waarom die $this-> opeens niet kan in createFilename(). Ik krijg steeds:
Fatal error: Using $this when not in object context in /home/***/UploadConverter.class.php on line 63 (hier lijn 17)
Ik wil de bestandsnaam daarvan oproepen in getUploadData().

Want dit is een deel van een uploadsysteem (gebruikt Verot-class voor de liefhebbers) en ik wil de gegevens graag centraal in een getUploadData() object hebben zodat ik die voor andere dingen kan gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php // kleurtjes
    public function getUploadHash($hash) {
    $this->uploadhash = $hash;
    return $this->uploadhash;
    
    }

    
    /* Create Filename, which not exists*/
    private static function createFilename($filename) {
    while (true) {
        $timecreated = time();
        $file = pathinfo($filename);
        $prefix = uniqid();
        $filename_new = $timecreated.'_'.$prefix;
        if (!file_exists($filename_new)) break;
    }

    $this->filename = $filename_new;
    return $filename_new;
    }


public function getUploadData() {
    $filedata['Name'] = $this->filename;
    $filedata['Type'] = '';
    $filedata['UploadID'] = $this->uploadID;
    $filedata['Author'] = '';
    return $filedata;
    }


?>


Opmerkelijk is dat als voorbeeld die $this->uploadhash = $hash; uit getUploadHash wel weer mag? Waar gaat het mis?
Gewijzigd op 06/11/2018 13:17:18 door - Ariën -
 
PHP hulp

PHP hulp

23/04/2024 21:58:01
 
Ben van Velzen

Ben van Velzen

06/11/2018 13:55:36
Quote Anchor link
In een static function kun je $this niet gebruiken. Dat is immers geen directe class method, maar staat los.
 
- Ariën  -
Beheerder

- Ariën -

06/11/2018 15:45:42
Quote Anchor link
**snap**
Dat was het inderdaad. Thanks...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.