Ik heb minequery.class.php en usage.php gedownload en hij werkt op onze test server (PHP Version 5.3.9), maar hij werkt niet op onze normale server (PHP Version 5.2.17).
Ik krijg deze error:
Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /classes/Minequery.php on line 45
Even voor de duidelijkheid, die class is niet door mij geschreven, maar ik maak er wel gebruik van.
Roel PHP op 04/10/2012 11:18:33
Ik ben geen OO-guru, maar ik geloof dat je read()-methode static is?
Je probeert nu een statische methode op te roepen vanuit een bestaand object.
Ik weet niet of dat kan.
Hij geeft geen foutmelding op mijn test server, dat zou hij denk ik wel gedaan hebben als die niet static mag zijn.
En de foutmelding gaat over de :: die hij niet verwacht, waarschijnlijk heeft hij nog niet eens naar de functie gekeken.
$class = new ClassName;
$class->functionName();
of
ClassName::functionName();
Je mag uiteraard een variabele noemen zoals je wil, maar dit laat wel zien waar de verwarring zit.
Dat moet zijn:
$object = new ClassName;
$object->functionName();
of
ClassName::functionName();
Dus ...
- Ofwel heb je een statische functie, waarbij je enkel gebruik maakt van een class, maar niet via een object:
ClassName::functionName();
- Ofwel heb je functies waarbij een object (= instantie van een class) centraal staat, en waarbij de functie gebruik kan maken van de $this-> variabelen (= eigenschappen) van dat object:
$object->functionName();
In het eerste geval heb je geen object, en dus ook geen $this.
[quote="Ricardo Vermeltfoort op 04/10/2012 11:27:40"]
...
Gebruik je daar juist niet -> voor?
$class = new ClassName;
$class->functionName();
of
ClassName::functionName();
Je mag uiteraard een variabele noemen zoals je wil, maar dit laat wel zien waar de verwarring zit.
Dat moet zijn:
$object = new ClassName;
$object->functionName();
of
ClassName::functionName();
Dus ...
- Ofwel heb je een statische functie, waarbij je enkel gebruik maakt van een class, maar niet via een object:
ClassName::functionName();
- Ofwel heb je functies waarbij een object (= instantie van een class) centraal staat, en waarbij de functie gebruik kan maken van de $this-> variabelen (= eigenschappen) van dat object:
$object->functionName();
In het eerste geval heb je geen object, en dus ook geen $this.
[/quote]
ahh dat verduidelijkt het wel een beetje ^^
Heb je ook een ideetje wat ik aan die class zou moeten veranderen om hem bij de oudere PHP versie te laten werken? (zie eerste post)
Dus je moet overal werken met
Minequery::functienaam()
En je moet nergens
$object = new Minequery()
gebruiken.
Dat was het probleem niet, download de 2 bestanden van de eerste post en probeer ze op een server met PHP 5.3.* en op een server met PHP 5.2.*, het probleem is dat hij niet werkt op mijn normale server (PHP 5.2.*) maar wel op mijn test server (PHP 5.3.*). :(
Mijn vraag is of daar een oplossing voor is want wat ik al heb geprobeerd werkte niet. (upgraden van de PHP versie is hellaas niet mogelijk)