kostenloser Webspace werbefrei: lima-city


prüfen, ob Klasse schon existiert

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    cptgame

    cptgame hat kostenlosen Webspace.

    Hallo

    ich möchte bei Aufruf einer Seite eine Klasse ggf. mehrfach anwenden
    aber nicht jedesmal diese Klasse neu inizialisieren (oder wie man sowas nennt)

    wie kann ich prüfen, ob die Klasse schon "geladen" ist ?
    damit is sie nicht bei jeder Nutzng neu laden muss

    $myaction = new MeineKlasse($startwer1, $startwert2);
    $ergebnis1 = $myaction->get($abfragewert);

    nur wenn (Klasse nicht existiert) dann { inizialisiere Klasse neu )
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. if(class_exists('KLASSE')) {
    //...
    }
  4. Autor dieses Themas

    cptgame

    cptgame hat kostenlosen Webspace.

    nein,
    das habe ich schon ausprobiert

    if(class_exists('KLASSE')) { .. }

    prüft ja "nur" ob die Klasse definiert ist,
    das ist sie ja, durch include, auch schon vor der Initialisierung mit:
    $myaction = new MeineKlasse($startwer1, $startwert2);

    also ich will nicht prüfen, ob die Klasse als Klasse (Quellcode) existiert (geladen ist)
    sondern ob sie schon "gestartet" ist ... quasi ob ich mit $myaction schon arbeiten kann



  5. cptgame schrieb:
    .. quasi ob ich mit $myaction schon arbeiten kann

    Dann prüfe doch einfach ob $myaction schon existiert?

    Beitrag zuletzt geändert: 26.1.2012 13:54:20 von alfr3d
  6. Autor dieses Themas

    cptgame

    cptgame hat kostenlosen Webspace.

    alfr3d schrieb:
    Dann prüfe doch einfach ob $myaction schon existiert?


    ach warum einfach, wenn es auch kompliziert geht .... :)

    hast ja recht, sah wohl die Schule vor lauter Klassen nicht mehr

    einfach mit

    if (!isset($myaction) ) { 
          $myaction = new MeineKlasse($startwer1, $startwert2);
    }


    EDIT:

    habe nochwas gefunden, ... prüfen ob eine Methode der Klasse schon funktioniert
    if (!method_exists($myaction,'get')) { 
          $myaction = new MeineKlasse($startwer1, $startwert2);
    }


    aber !isset() ist wohl deutlich einfacher
    :)
  7. cptgame schrieb:
    aber !isset() ist wohl deutlich einfacher :)
    das einzig wahre kommt aber von php.net selbst:
    if (is_a($<object>, '<className>')) {
      ...;
    }
    oder (und damit ist eigentlich nicht mehr das einzig wahre ;):
    if ($<object> instanceof '<className>') {
        ...;
    }

    weil du ja 'versehentlich' den variablennamen schon hättest einmal vergeben können und da drin ist doch kein objekt von klasse enthalten (weil was weiß ich ... ein string drin ist).

    p.s.: dein titel war leider falsch

    Beitrag zuletzt geändert: 26.1.2012 15:07:01 von hemiolos
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!