Heim >Backend-Entwicklung >PHP-Tutorial >Fragen zu Funktionsrückgabewerten

Fragen zu Funktionsrückgabewerten

WBOY
WBOYOriginal
2016-08-04 09:21:56800Durchsuche

Ich weiß immer noch nicht viel über Funktionsrückgabewerte. Wenn im folgenden Beispiel jj() aufgerufen wird, wird eine 1 ausgegeben. Es scheint, dass der Funktionsrückgabewert nicht verwendet wird Wenn Sie diese Funktion aufrufen, wird sie ausgeführt. Reicht es aus, nur $a auszugeben? Warum hängt es immer noch mit dem Rückgabewert zusammen?

<code>    function jj(){
        $a=1;
        echo $a;
    }
    $b=jj();
    var_dump($b);</code>

Antwortinhalt:

Ich weiß immer noch nicht viel über Funktionsrückgabewerte. Wenn im folgenden Beispiel jj() aufgerufen wird, wird eine 1 ausgegeben. Es scheint, dass der Funktionsrückgabewert nicht verwendet wird Wenn Sie diese Funktion aufrufen, wird sie ausgeführt. Reicht es aus, nur $a auszugeben? Warum hängt es immer noch mit dem Rückgabewert zusammen?

<code>    function jj(){
        $a=1;
        echo $a;
    }
    $b=jj();
    var_dump($b);</code>

Drucken wird nur auf dem Bildschirm angezeigt. Wenn Sie diesen Wert verwenden, müssen Sie die Eingabetaste verwenden, um ihn an anderer Stelle zu erhalten. Hier gibt Ihre Funktion also nichts zurück, sondern gibt nur 1 aus, sodass die Variable b keinen Wert erhält und daher leer ist.

Da Ihre Funktion keine Return-Anweisung hat, wird nach der Ausführung null zurückgegeben.
Ihr Funktionsausführungsprozess:

  1. $b = jj(); Rufen Sie jj() auf, um $a einen Wert zuzuweisen, geben Sie $a aus, keine Rückgabe (Rückgabe ist null)

  2. var_dump $b, $b wird der Rückgabewert von jj() zugewiesen, daher ist er null

  3. Nachdem die gesamte Ausführung abgeschlossen ist, bleiben die gedruckten 1 (Wert von $a) und Null (Wert von $b) übrig

<code>function jj(){
        $a=1;
        echo $a;
        return $a;
    }
    $b=jj();
    var_dump($b);</code>

Dies ist wahrscheinlich die Ausgabe, die Sie erwarten

Ihre jj-Funktion gibt $a direkt ohne Rückgabe aus, daher ist $b leer

<code>$b=jj();//输出1 直接调用函数jj
var_dump($b);//输出null  打印函数?并没用return值

加了return之后的结果如下:
1
D:\WWW\demo\demo\demo.php:15:int 1
</code>

echo ist eine direkte Ausgabe, return gibt den Ort zurück, an dem es aufgerufen wird

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn