PHP関数参照パラメータ関数

May 10, 2017 am 11:25 AM

パラメータを引用する関数の紹介

PHPではパラメータはデフォルトで値渡しであり、関数のパラメータもローカル変数なので、関数内でパラメータの値を変更しても、関数値の外側は変更されません。前のセクションでは、phpの通常のパラメータ関数と疑似型パラメータ関数を紹介しました。このセクションでは、関数がサブプログラムである場合、その関数を呼び出すプログラムを親プログラムと呼ぶことができます。親プログラムは、指定された値または変数を関数に直接渡して使用します。渡された値または変数と関数内の値は別のメモリ ブロックに格納されるため、関数がインポートされた値を変更しても、親プログラムには直接影響しません。

PHP 参照パラメータの関数形式の説明は次のとおりです:

void funName(array &arg)                     // 在参数列表中出现使用 &描述的参数
ログイン後にコピー

以下は PHP 参照パラメータの例です:

<?php
 //声明一个函数作为测试
 function test($a){
   $a = 200;     // 函数中改变参数值为200
 }
 $b = 100;       // 父程序中声明一个全局变量$b并给一个初始值100
 test($b);       // 调用test函数 将100传给函数的参数
 echo $b;        // 输出100 $b的值没变化
?>
ログイン後にコピー

上記の例では、test() 関数を呼び出すときに、グローバル変数 $ b の値は関数 test() に渡されます。 test() 関数内で変数 $a に新しい値 200 が割り当てられますが、関数の外で変数 $b の値を変更することはできません。 test() 関数を呼び出した後、変数 $b によって出力される値は 100 のままです。関数がその引数値を変更できるようにするには、引数を参照渡しする必要があります。

値渡しモードと比較して、親プログラムで指定された値またはターゲット変数は関数に渡されませんが、値または変数のメモリ格納ブロックの相対アドレスが関数にインポートされます。したがって、関数内で値が変更されると、親プログラムにも影響が及びます。関数のパラメーターを常に参照渡ししたい場合は、関数定義のパラメーターの前に記号 & を追加します。

前の例を変更します:

<?php
 //声明一个函数作为测试
 function test(&$a){
   $a = 200;     // 函数中改变参数值为200,加使用 & 引用参数$a,外部变量被修改
 }
 $b = 100;       // 父程序中声明一个全局变量$b并给一个初始值100
 test($b);       // 调用test函数 将变量$b的引用传给函数的参数$a
 echo $b;        // 输出200 $b的值在函数中修改变量$a时被修改
?>
ログイン後にコピー

上記の例では、test() 関数を呼び出すときに、グローバル変数 $b の値が関数 test() に渡されません。ご覧のとおり、test() 関数の定義では、変数 $a が参照によって渡されることを指定するために参照記号 & が使用されています。関数本体では、変数 $a に新しい値 200 が割り当てられます。外部データは参照によって変更されるため、外部変数 $b の値も変更されます。関数呼び出しが終了すると、変数 $b の出力値が 200 であることがわかります。

注: & を使用して関数の仮パラメータ内のパラメータを変更する場合。次に、関数を呼び出すときに、値ではなく変数をこのパラメーターに渡す必要があります。

【おすすめ関連チュートリアル】

1.「php.cn Dugu Jiijian (4) - PHPビデオチュートリアル

2. PHPプログラミングの入門からマスターまでの完全なビデオチュートリアル

3. . 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:27 PM

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

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

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

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

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

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

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

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 は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

See all articles