login  Naam:   Wachtwoord: 
Registreer je!
 Forum

een Class 2 x aanroepen

Offline pim1991 - 09/07/2009 15:13
Avatar van pim1991PHP interesse Hallo,

Heb een script waar een class wordt aangeroepen in het menu om de headlines op te halen.
Als men erop klikt dan kan je het hele bericht lezen maar deze haalt hij uit dezelfde class.

Ik krijg dus dan een foutmelding dat je de klasse niet 2x kan aanroepen.

Kan het wel? Of moet ik het anders doen (en hoe dan)?

Alvast bedankt!

11 antwoorden

Gesponsorde links
Offline Bart - 09/07/2009 15:33 (laatste wijziging 09/07/2009 15:33)
Avatar van Bart PHP expert Het lijkt mij gewoon mogelijk dat je verder kan werken met je instantie (hangt natuurlijk ook af van je constructor/destructor methoden).

edit: kan je misschien anders wat code laten zien (plaatscode.be)
Offline pim1991 - 09/07/2009 15:48 (laatste wijziging 09/07/2009 15:49)
Avatar van pim1991 PHP interesse Plaatscode: 137101

Als jullie nog verbeteringen vinden dan zeg dat ;)
Ben Classes nog aan het leren 
Offline Bart - 09/07/2009 15:50
Avatar van Bart PHP expert En het voorbeeld HOE je deze class uiteraard gebruikt he, waar het fout gaat.
Offline pim1991 - 09/07/2009 15:57
Avatar van pim1991 PHP interesse Plaatscode: 137102

Het gaat dus fout omdat hij 2x hetzelfde oproept.

Nu heb je trouwens de nieuwe versie van het script met de foutmelding:
Fatal error: Call to a member function setTicketID() on a non-object in .../core/pages/tickets.php on line 16
Offline Bart - 09/07/2009 16:57
Avatar van Bart PHP expert tickets.php is? Ik ben de weg even helemaal kwijt, je post 2 stukken code.. De class en de code waarin je de class gebruikt. Even weer een overzicht creëren, wat is welk bestand? En post je de volledige code? Want in beide code fragmenten staat op regel 16 niets spannends, in 1 van de fragmenten is zelfs regel 16 leeg.
Offline pim1991 - 09/07/2009 17:14 (laatste wijziging 09/07/2009 17:15)
Avatar van pim1991 PHP interesse 1ste is de class

2de is tickets.php

En ja is volledige code =)
Die wordt geinclude in een andere pagina maar als ik die allemaal moet gaan geven dan moet ik ca. 10 scripts posten. Is namelijk een heel systeem waar het in gebruikt wordt.
Offline Stijn - 09/07/2009 19:41
Avatar van Stijn PHP expert Doe die if eens weg in je tweede code fragment. Want $tickets bestaat nog niet op dat moment.
Offline pim1991 - 09/07/2009 23:23
Avatar van pim1991 PHP interesse Ja, maar die wordt wel al aangemaakt in een andere include en dat is juist het probleem.
De class wordt dan 2x aangesproken en dat mag niet maar verder gaan gaat ook niet.
Offline Bart - 09/07/2009 23:33
Avatar van Bart PHP expert Wel.. laat die code dan ook even zien. Hoe kunnen wij ooit jouw probleem oplossen als jij ons niet voorziet van de juiste code?
Offline Stijn - 10/07/2009 19:21
Avatar van Stijn PHP expert
Citaat:
Fatal error: Call to a member function setTicketID() on a non-object in .../core/pages/tickets.php on line 16
Kan je misschien eens de eerste 16 lijnen geven van tickets.php?
Offline Ibrahim - 11/07/2009 15:40 (laatste wijziging 11/07/2009 15:43)
Avatar van Ibrahim PHP expert Trouwens, je mag wel twee keer een class aanroepen. Je mag niet een functie in een class aanroepen als er geen object aanwezig is. Die error ontstaat dus enkel als je een functie van een object aanroept waarvan de instance nog niet is gemaakt.

  1. <?php
  2.  
  3. class MyClass {
  4.  
  5. public function __construct() {
  6. // code
  7. }
  8.  
  9. public function showMessage() {
  10. // code
  11. }
  12. }
  13.  
  14. // dit kan
  15. $myInstance = New MyClass;
  16. $myInstance->showMessage();
  17. $mySecondInstance = New MyClass;
  18. $mySecondInstance->showMessage();
  19.  
  20. // dit kan niet
  21. $myThirdInstance->showMessage();
  22. $myThirdInstance = New MyClass;


En: De functie destruct kan weg, PHP doet dat zelf. Destruct gebruik je enkel als je extra code wil uitvoeren bij het verwijderen van een object.

Stel je voor dat je een Logger class hebt en je wil dat je log bestand bij het eindigen van een parsing wordt opgeslagen, maar je wil niet een $logInstance->closeFile(); op elke pagina aanroepen. Dan zou je in je __destruct(); de functie $this->_closeFile(); kunnen aanroepen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.199s