2016-03-23 11 views
-10

ich eine Funktion in PHP haben, die wie folgt aussieht:Wenn diese Funktionen aufruft, etwas tun, php

function blabla(){ 

    // some code 

    if(/*function dothis() calls me*/){ 

     // do this 
    } 

    return something; 
} 

Und ich habe zwei Funktionen, die blabla() nennen. Wenn die erste Funktion blabla() aufruft, möchte ich, dass der Code außerhalb der if-Anweisung ausgeführt wird. Und wenn die Funktion dothis()blabla() aufruft, sollte der Code innerhalb der if-Anweisung aufgerufen werden. Wie baue ich meine if-Anweisung?

+6

Sie möchten nicht, dass Funktionen das Verhalten je nach Call-Stack ändern. Das würde Ihren Code unmöglich machen, zuverlässig zu testen und würde die Dinge definitiv langsamer machen, als sie sein müssten. Wenn Sie zwei verschiedene Dinge tun müssen, schreiben Sie 2 Funktionen. –

+0

@EliasVanOotegem Ja, das stimmt, was du sagst. Dies war sowieso die beste Lösung. Vielen Dank! –

Antwort

1

Übergeben Sie einen booleschen Wert als Argument an blabla. In dothis können Sie blabla(true) anrufen und in der anderen Funktion können Sie blabla(false) aufrufen. Überprüfen Sie das Argument in der if-Anweisung, und der Code innerhalb wird nur ausgeführt, wenn blabla von dothis aufgerufen wird.

0

Hey Sie kann so versuchen: -

Funktion blabla ($ val = 0) {

// some code 

if($val){ 

    // do this 
} 

return something; 

}

jetzt, wenn ich blabla Funktion von zwei Arten aufrufen: -

Blabla (0); - In diesem Fall wird die Anweisung nicht ausgeführt. Blabla (1); - In diesem Fall wird die Anweisung ausgeführt.

Verwandte Themen