Heim Backend-Entwicklung PHP-Tutorial Referenz und Rückgabe von PHP-Funktionen

Referenz und Rückgabe von PHP-Funktionen

May 04, 2018 am 11:49 AM
php 引用 返回

Die Referenz der PHP-Funktion ist die gleiche wie die Variablenreferenz in PHP, daher werfen wir heute einen Blick auf einige Beispiele für Funktionsrückgaben. Schauen wir uns diese gemeinsam an.

Schauen Sie sich zuerst den Code an:

<?php
function &test() {
    static $b=0;//申明一个静态变量
    $b=$b+1;
    echo $b;
    return $b;
}
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test();//这条语句会输出 $b的值 为6
?>
Nach dem Login kopieren

Erklären Sie unten:

Auf diese Weise erhält $a=test(); Es handelt sich nicht um eine Referenzrückgabe einer Funktion. Der Grund dafür ist, dass PHP festlegt, dass das, was durch $a=&test(); erhalten wird Was ist eine Referenzrückgabe? (Im PHP-Handbuch heißt es: Referenzrückgabe wird verwendet, wenn Sie eine Funktion verwenden möchten, um herauszufinden, an welche Variable die Referenz gebunden werden soll.) Dieser Unsinn hat es mir unmöglich gemacht, ihn zu verstehen lange.

Um es anhand des obigen Beispiels zu erklären: Der Aufruf einer Funktion in der Methode

$a=test() weist den Wert der Funktion nur $a zu, Änderungen an $a jedoch nicht Es betrifft $b in der Funktion und die Funktion wird über $a=&test() aufgerufen. Ihre Funktion besteht darin, die Speicheradresse der $b-Variablen in $b und die Speicheradresse der $a-Variablen auf dieselbe zu verweisen , was einen Effekt erzeugt, der „$a=&$b;“ entspricht. Das Ändern des Werts von $a ändert also auch den Wert von $b, sodass nach der Ausführung von

$a=&test();
$a=5;
Nach dem Login kopieren
Nach dem Login kopieren

der Wert von $b wurde 5.

Statische Variablen werden hier verwendet, um jedem die Referenzrückgabe der Funktion verständlich zu machen. Tatsächlich wird die Referenzrückgabe der Funktion hauptsächlich in Objekten verwendet

Im Anhang finden Sie ein offizielles PHP-Beispiel:

Durch den Aufruf einer Funktion mit $a=test() wird der Wert der Funktion nur $a zugewiesen. Änderungen an $a haben keinen Einfluss auf $b in der Funktion. Nun, seine Funktion besteht darin, die Speicheradresse der $b-Variablen in return $b und die Speicheradresse der $a-Variablen auf dieselbe Stelle zu verweisen, was einen Effekt erzeugt, der dem von „$a=&$b;“ entspricht Der Wert von $a ändert auch den Wert von $b, sodass nach der Ausführung von

$a=&test();
$a=5;
Nach dem Login kopieren
Nach dem Login kopieren

der Wert von $b 5 wird.

Statische Variablen werden hier verwendet, um jedem die Referenzrückgabe der Funktion verständlich zu machen. Tatsächlich wird die Referenzrückgabe der Funktion hauptsächlich in Objekten verwendet

Im Anhang finden Sie ein offizielles PHP-Beispiel:

//This is the way how we use pointer to access variable inside the class.
<?php
class talker{
    private $data = 'Hi';
    public function & get(){
        return $this->data;
    }
    public function out(){
        echo $this->data;
    }  
}
$aa = new talker();
$d = &$aa->get();
$aa->out();
$d = 'How';
$aa->out();
$d = 'Are';
$aa->out();
$d = 'You';
$aa->out();
?>
//the output is "HiHowAreYou"
Nach dem Login kopieren

Ich glaube, nachdem Sie den Fall in diesem Artikel gelesen haben, beherrschen Sie die Methode der Funktionsreferenz. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Verwandte Artikel:

Referenzparameter und Anzahl der Parameter der PHP-Funktion

PHP - Function_Study Notes Verweise auf PHP-Funktionen, PHP-Verzögerungsfunktion PHP-Sortierfunktion

Eingehende Analyse des PHP-Ausführungsprinzips (2): Funktionskompilierung, PHP-Verschlüsselungsfunktion, PHP-Funktionsreferenz, PHP-Verzögerungsfunktion

Das obige ist der detaillierte Inhalt vonReferenz und Rückgabe von PHP-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

See all articles