login  Naam:   Wachtwoord: 
Registreer je!
 Forum

php OOP functie in class (Opgelost)

Offline wes - 23/06/2008 15:14
Avatar van wesPHP interesse Ik wil een datum functie in een php class hebben, alleen dat werkt niet. Dit is mijn code:

http://plaatscode.be/10951/

En de foutmelding die ik krijg:

[error]
Parse error: syntax error, unexpected '(', expecting ',' or ';' in /opt/lampp/htdocs/mdm/new/langs/nl.php on line 9[/error]

Hoe gebruik je dan toch die datum functie in een class?

9 antwoorden

Gesponsorde links
Offline Stefaan - 23/06/2008 15:19
Avatar van Stefaan Nieuw lid Moet de datefunctie geen variabel bevatten waar de timestamp inkomt?

date("Y", $variabel);

It's just a tought
Offline Rik - 23/06/2008 15:20
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Als je variabelen definieert in een class kan je daar alleen maar 'constante' waarden in zetten. Een string, array, getal, boolean dus. Je kunt geen dynamische variabelen of functies aanroepen.

Als je toch bij het initialiseren van de class dat soort variabelen aan wilt maken doe je dat in de constructor.
Offline wes - 23/06/2008 15:23 (laatste wijziging 23/06/2008 15:23)
Avatar van wes PHP interesse @Boukefalos: Hoe werkt zo'n constructor dan? (ik ben net beginner met php OOP )
Offline Rik - 23/06/2008 15:27
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Werk je met php5? Dan is de constructor een functie genaamd __construct() die vanzelf wordt aangeroepen als er een object wordt aangemaakt. In php4 is het een functie met precies dezelfde naam als de class zelf.

Ik zou je aanraden gelijk de methodes van php5 aan te leren omdat die veel beter oop zijn dan in php4.

Leesvoer van php.net:
http://nl3.php.net/manual/en/language.oop5.php

En het hoofdstuk over de constructor:
http://nl3.php.....decon.php
Offline wes - 23/06/2008 15:32
Avatar van wes PHP interesse Mijn nieuwe code (voor zover ik het begrijp), maar dat werkt nog steeds niet...:S

  1. function __construct() {
  2.  
  3. $date = date("Y");
  4.  
  5. }
  6.  
  7.  
  8. var $lang = array(
  9. "HeaderTitle"=>"",
  10. "HeaderSubTitle"=>"",
  11. "Year"=>$date,
  12. "Copyright"=>""
  13. );
Offline Rik - 23/06/2008 15:35
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Het werkt nog niet omdat je de variabele $date niet kunt gebruiken bij het aanmaken van de variabele $lang. Dat zou je ook via de constructor moeten doen.
Offline wes - 23/06/2008 15:55
Avatar van wes PHP interesse Kun je misschien een voorbeeld geven (ben nog een beetje noob met php OOP)?
Offline Rik - 23/06/2008 16:08
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Jouw code zou dan zo worden:
  1. class language {
  2. var $date = null;
  3. var $lang = array(
  4. "HeaderTitle"=>"",
  5. "HeaderSubTitle"=>"",
  6. "Year"=>null,
  7. "Copyright"=>""
  8. );
  9.  
  10. function __construct() {
  11. $this->lang["Year"] = $this->date = date("Y");
  12. }
  13.  
  14. function Output($mode) {
  15. if (array_key_exists($mode, $this->lang)) {
  16. return $this->lang[$mode];
  17. }
  18. }
  19. }
  20.  
  21. $blaat = new language;
  22. echo $blaat->Output("Year");
Offline wes - 23/06/2008 16:10
Avatar van wes PHP interesse Bedankt 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.192s