2016-07-01 11 views
0

Ich suche nach etwas HilfeParameter in einer Funktion innerhalb einer anderen Funktion übergeben?

Es ist möglich, eine Funktion mit Argumenten/Parametern innerhalb einer anderen Funktion in PHP zu setzen? Hier habe ich ein theoretisches Beispiel.

<?php 

// Function with parameter/s 
function funcOne($arg) { 
    return $arg; 
} 

// Parameter/s inside another function.. Possible!? 
function funcTwo() { 
    return funcOne($arg); 
} 

Wenn ich versuche, die Parameter wie diese

funcOne('Alex'); 
echo funcTwo(); 

ich den Fehler folgenden Mitteilung erhalten zu setzen

Notice: Undefined variable: arg in... 

Vielen Dank im Voraus :)

+0

Sie müssen nur die zweite Funktion aufrufen, aber die Funktion muss auch den Parameter aufrufen, um die erste Funktion aufzurufen. – Rizier123

+0

funcTwo() weiß nicht über $ arg, es ist nicht in seinem Variablenumfang, nicht sichtbar für ist. – PaulH

+0

Danke @ Rizier123 für Ihre Antwort. Das löst meine Zweifel. :) – Anass

Antwort

0
// Function with parameter/s 
function funcOne($arg) { 
    return $arg; 
} 

// Parameter/s inside another function.. Possible!? 
function funcTwo() { 
    return funcOne($arg); 
} 

funcOne('Alex'); 
//Call is made to function one which returned an ARG. 

Hinweis, dass hier die Funktion nur die arg zurückgeführt und es vergessen, jetzt dieses Argument NO WHERE gespeichert

//Now here inside the functionTwo scope $arg is never defined. 
echo funcTwo(); 

verwendet werden, Sie können die folgenden mit Klassen tun und Objekte

class MyClass { 

    public $classarg; 

    public function funcOne($arg) { 
     $this->classarg = $arg; //assigned the argument to a class variable 
    } 

    function funcTwo() { 
     return $this->classarg; //using the class variable to test 
    } 

} 

$myobj = new MyClass(); 
$myobj->funcOne('Alex'); 
echo $myobj->funcTwo() 

Sie können auch verwenden globale Variable zu erreichen, was Sie wollen, aber ich will nicht, es zu benutzen empfehlen als objektorientierte Programmierung ist das, was sollten wir uns

+0

Dank @Dharam für die großartige Erklärung. Ich schätze es! :) – Anass

0
function funcTwo($arg) { 
    return funcOne($arg); 
} 

Beachten Sie, dass Sie sollten lernen, Variablen zu verwenden re machen Funktionen.

+0

Danke Julie für Ihre Hilfe. Ja, ich werde :) – Anass

0

funcOne('Alex') ist kein Parameter einstellen, ist es die Funktion funcOne ruft() verwenden würde. Wenn funcOne($arg) ausgeführt wird, wird der Parameter $ arg an den Aufrufer zurückgegeben. echo funcOne('Alex') wird echo Alex, denn das ist der Wert zurückgegeben. Nach der Rückkehr kennt funcOne nichts mehr von 'Alex'.

Wenn Sie funcTwo() aufrufen, führt es funcOne($arg) aus, aber $arg ist nicht definiert: Es ist kein Wert zugewiesen.

+0

Danke @PaulH für diesen Tipp :) – Anass

+0

@Mbarek bitte markieren Sie die Antwort, die Ihnen am besten als "akzeptiert". – PaulH

+0

Sorry, ich habe keinen ausreichenden Ruf, um das zu tun! – Anass