PHP関数の参照と戻り値

May 04, 2018 am 11:49 AM
php 引用 戻る

php関数の参照はphpの変数参照と同じなので、今日は関数の戻り値の例をいくつか見ていきます。必要な方は一緒に見てみましょう。

まずコードを見てください:

<?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
?>
ログイン後にコピー

以下の説明:

このように、$a=test(); は、通常の関数呼び出しと何ら変わりません。理由: これは PHP の規則であり、$a=&test(); によって取得されるものは関数の参照戻りであると規定されています (PHP マニュアルには参照戻りが使用されると記載されています)。参照を見つけるために関数を使用したい場合は、関数が変数にバインドされている場合に使用する必要があります。) このナンセンスなため、私は長い間理解できませんでした。

上記の例を使用して説明すると、

$a=test() を使用して関数を呼び出すと、関数の値が $a に代入されるだけであり、関数の呼び出し時に $a に加えられた変更は $b には影響しません。 $a=&test() を介して関数を実行すると、その関数は $b を返す $b 変数のメモリ アドレスと $a 変数のメモリ アドレスを同じ場所にポイントすることであり、これと同等の結果が生成されます。 $a=&$b;" つまり、$a の値を変更すると、$b の値も変更されるため、

$a=&test();
$a=5;
ログイン後にコピー
ログイン後にコピー

を実行すると、$b の値は 5 になります。

ここでは関数の参照戻りを誰もが理解できるように静的変数が使用されています。実際、関数の参照戻りは主にオブジェクトで使用されます

公式の PHP サンプルを添付します:

$a=test() メソッド。関数を呼び出すには、単に使用します。関数の値は $a に割り当てられるだけであり、$a に対する変更は関数内の $b には影響しません。$a=&test() を通じて関数を呼び出す場合、その関数は次のようになります。 return $b in $b 変数のメモリ アドレスと $a 変数のメモリ アドレスは同じ場所を指しているため、「$a=&$b;」と同等の効果が得られます。したがって、$a の値も変更します。 $b.value の値を変更するため、

$a=&test();
$a=5;
ログイン後にコピー
ログイン後にコピー

を実行すると、$b の値は 5 になります。

ここで静的変数は、関数の参照戻りを誰もが理解できるようにするために使用されています。実際、関数の参照戻りは主にオブジェクトで使用されます

公式の PHP サンプルを添付します:

//This is the way how we use pointer to access variable inside the class.
<?php
class talker{
    private $data = &#39;Hi&#39;;
    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"
ログイン後にコピー

のケースを読んだ後だと思います。この記事では関数の参照方法の詳細をすでにマスターしています。さらに興味深い情報については、PHP 中国語 Web サイトの他の関連記事に注目してください。

関連記事:

php関数の参照パラメータとパラメータ数

PHP - function_studynotes php関数のリファレンス php遅延関数 phpソート関数

php実行原理の徹底分析(2) ): 関数コンパイル php 暗号化関数 php 関数リファレンス php 遅延関数

以上がPHP関数の参照と戻り値の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

See all articles