# PHP: Function führt function aus, wenn Bedingung erfüllt ist



## Der_baum (13. November 2007)

Hallo zusammen,

wie geht’s den soweit?

Habe mal ne Frage, ich schreibe immer noch meine Klasse (PHP Version: 5) und bin, gegen ende, auf ein Hindernis gestoßen. 
Ich gebe oben eine ID ein und es entsteht entweder ein include befehl ausgelöst, oder es wird eine Seite aus einer MySQL DB erstellt.

Die entsprechende Funktion wird so aufgerufen:

```
require_once 'scripte/dbcom.php';

$db_com = new db_com();
$db_com->Establish_Connection();
$db_com->Select_DB();
$db_com->Get_ID();
$db_com->Page_Data();
$db_com->Create_Page_Data();
$db_com->Interpret_Queries();
$db_com->get_last_error();
```


Und sieht so aus:

```
public function Interpret_Queries() {

	if($this->Page_Path != '') {
		return (include $this->Page_Path);
		}else{
		//Hier sollte nun die Funktion „Choose_Create_Page_Function“ aufgerufen werden, welche dann wieder eine auswahl trifft, welche art von Seite erstellt werden soll.
	}
}
```

Vielen Danke für euere Hilfe,
Daniel

EDIT:
Im Moment steck es noch absolut in den Kinderschuhen, aber ich werde es nach und nach ausbauen, nur um sicherzugehen das auch alles so funktioniert wie es sein soll.
Beziehe mich mit der aussage auf Dinge wie:

```
if($this->Page_Path != '')
```


----------



## Hirnhamster (13. November 2007)

Was genau ist jetzt deine Frage ôÔ?


----------



## Der_baum (13. November 2007)

Oh, sorry! Dachte man checkt den Text. Bin bissi verwirrt. 

Meine Frage ist nun, wie ich innheralb der Funktion "Interpret_Queries()" auf eine andere Funktion (der selben Klasse) verweisen kann, bzw. diese andere Funktion ausführen kann. Die eintscheidung fällt allerdings anhand dieser Bedingung:


```
if($this->Page_Path != '') { 
        return (include $this->Page_Path); 
        }else{ 
        //Hier sollte nun die Funktion „Choose_Create_Page_Function“ aufgerufen werden, wenn o.g. Bedingung nicht erfüllt ist.
    }
```

Gruß Daniel


----------



## seppy003 (13. November 2007)

Hallo, 

soweit ich dich verstanden habe, kannst du eine Methode mit folgendem Aufruf starten

```
$this->Choose_Create_Page_Function();
```


----------



## Der_baum (14. November 2007)

Guten morgen,

damn.... da stand ich irgendwie aufm Schlauch. Nach so langer Zeit sollte man halt so simple dinge auch einfach mal bis zum nächsten Tag liegen lassen. 

Naja, eine Frage habe ich noch. 
Im Moment rufe ich ja die Funktionen direkt auf:


```
$db_com = new db_com(); 
$db_com->Establish_Connection(); //<- hier
```

Ich würde gerne die Funktionen auf "protected" setzen. Wie wären den da die Ansätze?
Ich habe mir überlegt eine art "Programm“-Funktion zu schreiben:


```
public function programm() {

$this->Ablauf_A();
$this->Ablauf_B();
$this->Ablauf_C();
.
.
.
.

protected function Ablauf_A() {}
.
.
.
```

die die anderen Funktionen aufruft.
Ist das so praktikabel, gibt es eine andere Lösung und ändert sich an der Scriptsicherheit etwas?

Gruß,
Daniel


----------

