$this werkt niet in method?
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.
Opmerkelijk is dat als voorbeeld die $this->uploadhash = $hash; uit getUploadHash wel weer mag? Waar gaat het mis?
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)
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
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;
}
?>
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
24/11/2024 08:10:02Ben van Velzen
06/11/2018 13:55:36In een static function kun je $this niet gebruiken. Dat is immers geen directe class method, maar staat los.