SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 30.12.2003, 23:37:14
darius darius ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 2
Methoden in Klassen includen bzw. ausserhalb der Klasse definieren

Hallo,

ich möchte eine Methode einer Klasse ausserhalb der Klasse definieren
da ich die Methoden includen möchte damit nicht alles in einer Datei sein muss

Es geht aber so nicht :

PHP-Code:
class test
{
   include(
"include_datei.php");

Es wird ein Fehler ausgegeben, was ja auch logisch ist.
Ich habe schon versucht die Mehode ausserhalb der Klasse zu definiern und sie dort zu includen :

PHP-Code:
class test
{

}

include(
"include_datei.php"); 
/* mit inhalt : 
function class::testfunktion();
*/ 
Kam auf die idee es so zu versuchen wie es in C++ gemacht wird.
Das kennt PHP aber leider nicht ;(


Das hab ich auch veruscht :
PHP-Code:
class test
{
   function 
test() // Konstruktor
     
{
     include(
"include_datei.php");
     
/* hier die datei im konstruktor zu includen
      kann aber in den Methoden/Funktionen die in dem Konstruktor
      definiert wurden $this nicht verwenden  */

     
}


Ich suche also einen Weg die Methoden einer Klasse zu includen.
Ich benutze für das Script eine Klasse, damit es keine Konflikte bei den Funktions- und Variablennamen gibt. Globale Variablen möchte ich deshalb nicht nutzen.
Ich hoffe mein Problem wurde verstanden. :)

Danke für eure Hilfe

Darius
Mit Zitat antworten
  #2  
Alt 31.12.2003, 00:35:04
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Re: Methoden in Klassen includen bzw. ausserhalb der Klasse definieren

Zitat:
Original geschrieben von darius
ich möchte eine Methode einer Klasse ausserhalb der Klasse definieren
da ich die Methoden includen möchte damit nicht alles in einer Datei sein muss
[...]
Ich suche also einen Weg die Methoden einer Klasse zu includen
Vor dem Problem stand ich auch mal. Kurz - es geht nicht mit include/require (warum auch immer).

Es geht aber folgendes:
PHP-Code:
# vater.php

class vater
{
  var 
$abc;
  function 
vater ($abc)
  {
    
$this->abc $abc;
  }

  function 
ausgabe ()
  {
     print (
$this->abc);
  }


PHP-Code:
# sohn.php

require_once ('./vater.php');

class 
sohn extends vater
{

  function 
sohn ($abc,)
  {
# constructor der Elternklasse
    
vater::vater($abc);
  }

  function 
setAbc ($a)
  {
     
$this->abc $a;
  }
}

# Beispiel

$sohn = &new sohn ('Text');
$sohn->ausgabe();
print (
'<br />');
$sohn->setAbc('neuer Text');
$sohn->ausgabe(); 
Ausgabe:
Text
neuer Text

EDIT: http://test.new-bbs.info/6500/

Geändert von meikel (†) (31.12.2003 um 01:13:50 Uhr)
Mit Zitat antworten
  #3  
Alt 31.12.2003, 00:54:25
overclocker overclocker ist offline
Junior Member
 
Registriert seit: May 2002
Beiträge: 179
Oder auch statt dem hier:
PHP-Code:
 vater::vater($abc); 
das hier ;)
PHP-Code:
 parent::vater($abc); 
ist dynamischer.. bzw. sollte sich der Name der Elternklasse ändern, passt es sich an. :)
Mit Zitat antworten
  #4  
Alt 31.12.2003, 00:59:53
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von overclocker
... das hier ;)
PHP-Code:
 parent::vater($abc); 
ist dynamischer.. bzw. sollte sich der Name der Elternklasse ändern, passt es sich an. :)
Nutzt nicht viel, weil sich dann auch der Name des Constructors in der Elternklasse ändert und parent::parent() nicht geht.

Da warten wir noch etwas auf ein benutzbares PHP5.
Mit Zitat antworten
  #5  
Alt 31.12.2003, 01:07:21
overclocker overclocker ist offline
Junior Member
 
Registriert seit: May 2002
Beiträge: 179
Danke. Hab nicht sofort bemerkt, dass das ein Constructor war.. (bzw. hab auf den Namen der Methode gar nicht geachtet).
Aber bei einer "normalen" Methode würde es gehen..
Mit Zitat antworten
  #6  
Alt 31.12.2003, 01:11:43
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
Zitat:
Original geschrieben von overclocker
Aber bei einer "normalen" Methode würde es gehen..
Da geht das. Und wenn Du in der Kindklasse Elternmethoden überschreibst, kann man die Vatermethode nur mit parent::uerbschriebene_methode() erreichen.
Mit Zitat antworten
  #7  
Alt 31.12.2003, 10:32:42
darius darius ist offline
Anfänger
 
Registriert seit: Dec 2003
Beiträge: 2
Hallo,

ich danke für Eure Hilfe. Werde es mit der Vererbung versuchen.


Geht es mit der Definition der Methoden ausserhalb der Klasse wie bei C++ also nicht ? Hab dazu nichts im Internet gefunden.


mfg Darius
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:40:05 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt