Nick: funktionen bei bedarf nachladen lassen

hallo,
bei php (ab version 5) gibt es die funktion __autoload(), mit der klassen
bei bedarf nachgeladen werden; beispiel:

<?php
  function __autoload($classname) {
    require_once("inc/".$classname.".php");
  }
  $bla = new blubber();
?>

hier wird blubber aus inc/blubber.php automatisch eingebunden.

nun möchte ich aber nicht eine ganze klasse, sondern nur einzelne
funktionen auf diese weise nachladen. gibt es dafür eine ähnliche funktion
oder muss ich mir soetwas selber schreiben, wenn ja, wie?

Nick

  1. echo $begrüßung;

    bei php (ab version 5) gibt es die funktion __autoload(), mit der klassen bei bedarf nachgeladen werden;
    nun möchte ich aber nicht eine ganze klasse, sondern nur einzelne
    funktionen auf diese weise nachladen. gibt es dafür eine ähnliche funktion
    oder muss ich mir soetwas selber schreiben, wenn ja, wie?

    Der Autoload-Mechanismus springt nur bei nicht vorhandenen Klassen an. Für andere Arten von Code ist kein Nachlademechanismus beim Fehlen vorgesehen. Der "Fatal error: Call to undefined function ..." lässt sich auch nicht abfangen.

    Es lassen sich auch nur komplette Dateien inkludieren, nicht nur Teilbereiche davon.
    Du könntest mit include_once / require_once experimentieren, das du innerhalb einer allerdngs bereits vorhandenen Funktions"hülle" einfügst.

    Ich persönlich würde solche Experimente gar nicht erst anfangen. Die Übersichtlichkeit wird dadurch nicht gerade erhöht, im Gegensatz zur Komplexität. Und wie sich dabei die Laufzeit ändert müsste auch verglichen werden. Wenn du dein Problem schildertest, das zu deinem Wunsch führte kennt vielleicht jemand eine bessere Möglichkeit.

    echo "$verabschiedung $name";

    1. nunja, ich möchte meinen code schön kurz halten.
      jede selbst geschriebene funktion soll in eine datei kommen.
      nur wenn eine funktion benötigt wird, soll diese datei included werden.
      damit ich nicht jedes include einzeln schrieben muss, möchte ich
      das automatisiert haben. klassen sind nicht so toll,
      da ich bei z.b. klasse::bla() eine E_STRICT warnung bekomme, und es soll auch "mit" gehen.

      Nick

      1. echo $begrüßung;

        klassen sind nicht so toll, da ich bei z.b. klasse::bla() eine E_STRICT warnung bekomme, und es soll auch "mit" gehen.

        Statische Klassenmitglieder sind als static zu kennzeichnen, wenn man sie so verwenden möchte. Dann gibt es auch keine E_STRICT-Meldung. Statische Methoden können dann auch nicht-statisch verwendet werden.

        echo "$verabschiedung $name";